【docker】kubernetes集群一键部署包
背景说明:
随着docker使用的逐步深入,docker的管理变得越来越麻烦,单纯的通过docker命令行的方式进行管理已经不能满足需求,同时也存在效率低下的问题。所以急需一个docker集群管理工具,要求是开源、稳定、持续发展。从上网看,开源的项目有很多,大部分都比较陈旧,个人感觉shipyard比较合适,简单实用,但是shipyard最近在github上通知关闭项目,不再维护,本来还想既然这个是开源项目,那就拿到源码自己改造也行,结果是用go写的,只会python,go搞不定。所以放弃了。
目前最大的应该就是谷歌的kubernetes了,也就是k8s,但是这个有一个公认的难题,集群搭建极其复杂,并且由于某些原因,国内访问不了goole,很多资料和源码也不好下载,形成第一道门槛,为此,个人花了一周的时间,研究k8s的搭建,做了如下两个部署包,实现一键部署。包中包含了k8s程序以及依赖,可以直接执行。说明如下:
环境说明:
Kubernetes版本:v1.8.3
操作系统:centos7
docker版本:17.03ce
集群环境:
3台虚拟机(提前安装好docker)
######docker安装方式#################
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
#####################################
master主机:192.168.1.107
node1节点:192.168.1.110
node2节点:192.168.1.111
#k8s的程序包未经过任何改动,是官方原版的1.8.3包。个人写了安装脚本
kubernetes-master下载链接
链接: https://pan.baidu.com/s/1slyrxut 密码: 7y96
kubernetes-node下载链接
链接: https://pan.baidu.com/s/1dHhcR3z 密码: w43e
使用方式:
master安装:
1,下载kubernetes-master包,解压到任意目录,执行readme_and_install.sh脚本,根据提示输入master ip地址
node安装:
2,下载kubernetes-node包,解压到任意目录,执行readme_and_install.sh脚本,根据提示输入master和node的ip地址
3,都安装完成之后,在master执行(如提示kubectl命令未找到,执行source /etc/profile后再执行)
kubectl get nodes
应该能看到两个节点,表示集群安装成功。
总结:
经过本次研究k8s,个人感觉这个东西暂时不敢用在正式项目上,原因如下:
1,k8s是goole的项目,所有资料和源码都在goole上存放(虽然在github上也有,但是真正下载的时候还是链接谷歌服务器),导致国内下载和查询很困难,出了问题不好查资料。
2,k8s过于复杂,虽然提供的功能很多,编排、自动部署、持续集成。但是正是由于过于丰富的功能,导致部署和使用非常复杂,单靠个人力量,出了问题搞不定。
3,目前互联网公司大部分使用公有云,比如阿里云,aws和微软云,他们都提供了docker管理工具,相较于自己研究k8s,不如直接使用公有云提供的管理工具,比如aws的ecs(管理工具不收费,只按照真实的ec2使用收费)。
后记
shipyard停止维护挺可惜的,shipyard满足了现阶段对docker管理的所有需求,界面还可以,同时又能够管理docker集群。不过通过shipyard的设计思路倒是给我了不少灵感,如果个人时间充足,我感觉我宁愿自己写一套类似于shipyard的docker管理工具,也不愿意使用k8s,毕竟个人开发的管理工具能够针对具体业务进行有重点的设计,而且docker提供了所有需要的接口,技术上没有什么难度,就看个人愿不愿意做了。
【docker】kubernetes集群一键部署包的更多相关文章
- Kubernetes集群的部署方式及详细步骤
一.部署环境架构以及方式 第一种部署方式 1.针对于master节点 将API Server.etcd.controller-manager.scheduler各组件进行yum install.编译安 ...
- 在 Kubernetes 集群快速部署 KubeSphere 容器平台
KubeSphere 不仅支持部署在 Linux 之上,还支持在已有 Kubernetes 集群之上部署 KubeSphere,自动纳管 Kubernetes 集群的已有资源与容器. 前提条件 Kub ...
- 高可用Kubernetes集群-15. 部署Kubernetes集群统一日志管理
参考文档: Github:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsear ...
- 高可用Kubernetes集群-14. 部署Kubernetes集群性能监控平台
参考文档: Github介绍:https://github.com/kubernetes/heapster Github yaml文件: https://github.com/kubernetes/h ...
- Kubernetes 集群安装部署
etcd集群配置 master节点配置 1.安装kubernetes etcd [root@k8s ~]# yum -y install kubernetes-master etcd 2.配置 etc ...
- 高可用Kubernetes集群-12. 部署kubernetes-ingress
参考文档: Github:https://github.com/kubernetes/ingress-nginx Kubernetes ingress:https://kubernetes.io/do ...
- 高可用Kubernetes集群-11. 部署kube-dns
参考文档: Github介绍:https://github.com/kubernetes/dns Github yaml文件:https://github.com/kubernetes/kuberne ...
- K8S从入门到放弃系列-(15)Kubernetes集群Ingress部署
Ingress是kubernetes集群对外提供服务的一种方式.ingress部署相对比较简单,官方把相关资源配置文件,都已经集合到一个yml文件中(mandatory.yaml),镜像地址也修改为q ...
- 云计算之路-阿里云上-容器难容:优化自建 docker swarm 集群的部署
在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的 ...
随机推荐
- Linux基础学习5
程序管理与SELinux初探 process&program 程序 (program):通常为 binary program ,放置在储存媒体中 (如硬盘.光盘.软盘.磁带等), 为实体档案 ...
- [笔记]Android 源码编译
问题: 解决方法: 下载地址ftp://ftp.gnu.org/gnu/make/make3.8.2的安装步骤:tar -zxvf make3.8.2.tar.gz在make-3.8.2目录下./co ...
- ScutSDK 0.9版本发布
ScutSDK简介: ScutSDK是和Scut游戏服务器引擎,简化客户端开发的配套SDK,她彻底打通了Scut开源游戏服务器引擎与客户端引擎(如Cocos2d-x/Quick-x/Unity3D)项 ...
- NV 3D投影方案 【转】
http://tu.pcpop.com/all-677013.htm 1/8 NVIDIA 3D方案涉及图形处理器(GPU).信号发射器.快门式3D眼镜.3D播放软件以及经过NVIDIA认证的显示器. ...
- 好工具MyEclise2016 CI下载
地址:http://pan.baidu.com/s/1gfBw9Ab 安装后,点开crack目录,按步骤走. 下面是我安装成功的画面.
- javascript Math函数
Math.max().作用:返回参数里的数字里最大的一个数字: Math.max(12,123,3,2,433,4); // returns 433 因为这个函数能够校验数字,并返回其中最大的一个,所 ...
- POJ 1698 Alice's Chance(最大流+拆点)
POJ 1698 Alice's Chance 题目链接 题意:拍n部电影.每部电影要在前w星期完毕,而且一周仅仅有一些天是能够拍的,每部电影有个须要的总时间,问能否拍完电影 思路:源点向每部电影连边 ...
- POJ 2456 Aggressive cows (二分 基础)
Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7924 Accepted: 3959 D ...
- Spring Boot从入门到实战:整合Web项目常用功能
在Web应用开发过程中,一般都涵盖一些常用功能的实现,如数据库访问.异常处理.消息队列.缓存服务.OSS服务,以及接口日志配置,接口文档生成等.如果每个项目都来一套,则既费力又难以维护.可以通过Spr ...
- Synchronized修饰静态变量和普通变量的区别
这里主要涉及到类对象(static方法),对象方法(非static方法) 我们知道,当synchronized修饰一个static方法时,多线程下,获取的是类锁(即Class本身,注意:不是实例): ...