# 1,简单说明。
此脚本所能够成形于今日,完全是拜大神分享的 https://github.com/opsnull/follow-me-install-kubernetes-cluster 项目所依托而成。之前也曾想过对 k8s 熟悉之后做一下部署脚本,但那时候并没有什么多么好的思路,直到上周看到了如上开源项目的部署思路,让我有种拨云见日,豁然开朗的感觉,当我跟随项目学习的时候,就已经打算了要写一下部署小脚本了。
因此,这个脚本基本上可以说是大神项目流程的一个堆叠,自己则只不过是做了一点点小小的整理与调试罢了,再一次,郑重的,对此表示感谢!
当然啦,事实上当自己来整理这个脚本的时候发现,事情也并没有那么的简单,而写脚本的不简单,则是为了以后每次部署的更简单。
这里简单说明一下我使用的服务器情况:
服务器均采用 CentOS7.3 版本,未在其他系统版本中进行测试。 主机 主机名 组件 192.168.111.3 kube-node1 Kubernetes 1.10.4,Docker 18.03.1-ce,Etcd 3.3.7,Flanneld 0.10.0,kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,kube-proxy
192.168.111.4 kube-node2 同上
192.168.111.5 kube-node3 同上
# 2,准备工作。
首先将整个部署文件上传到部署服务器,进行解压,然后做以下准备工作。
其中脚本代码,我已上传到 GitHub,各位可以参考:
整个安装包我已打包并上传百度云,可自行下载。
提取码通过如下方式获得:
# 1,修改以下内容。
# 2,基础配置。
这些操作均在 kube-node1 主机上执行。
注意:请严格按照如下这几步操作进行,否则可能导致下边部署脚本无法正常走完。
# 3,正式部署。
部署非常简单,直接执行magic.sh脚本即可。
不过有几点需要做一下简单说明: 1,启动正式部署之前,务必仔细认真检查各处配置是否与所需求的相匹配了,若不匹配,应当调整。
2,部署过程中如果有卡壳,或者未正常部署而退出,请根据对应的部署阶段进行排查,然后重新执行部署脚本,即可进行接续部署。
3,如对脚本中一些不足地方有任何建议,欢迎与我提出,一起维护,共同进步!
# 4,简单验证。
部署完成之后,可使用如下方式进行一些对集群可用性的初步检验:
# 1,检查服务是否均已正常启动。
# 2,查看相关服务可用性。
# 1,验证 etcd 集群可用性。
# 2,验证 flannel 网络。
查看已分配的 Pod 子网段列表:
输出:
验证各节点能通过 Pod 网段互通:
注意其中的IP段换成自己的。
# 3,高可用组件验证。
查看 VIP 所在的节点,确保可以 ping 通 VIP:
# 4,高可用性试验。
查看当前的 leader:
可见,当前的 leader 为 kube-node1 节点。
现在停掉 kube-node1 上的 kube-controller-manager。
大概一分钟后,再查看一下当前的 leader:
可以看到已经自动漂移到 kube-node3 上去了。
# 5,查验 kube-proxy 功能。
查看 ipvs 路由规则
输出:
# 6,创建一个应用。
查看集群节点:
创建测试应用:
执行定义文件,启动之前,可以先将上边定义的镜像 pull 下来。
检查各 Node 上的 Pod IP 连通性
可见,nginx-ds 的 Pod IP 分别是 172.30.84.2、172.30.8.2、172.30.29.2,在所有 Node 上分别 ping 这三个 IP,看是否连通:
检查服务 IP 和端口可达性
在所有 Node 上 curl Service IP:
检查服务的 NodePort 可达性