本篇延续过往手动安装方式来部署 Kubernetes v1.10.x 版本的 High Availability 集群,主要目的是学习 Kubernetes 安装的一些元件关析与流程。若不想这么累的话,可以参考 Picking the Right Solution 来选择自己最喜欢的方式。
本次安装的软件版本:
- Kubernetes v1.10.0
- CNI v0.6.0
- Etcd v3.1.13
- Calico v3.0.4
- Docker CE latest version
节点信息
本教学将以下列节点数与规格来进行部署 Kubernetes 集群,操作系统可采用Ubuntu 16.x与CentOS 7.x:
IP Address | Hostname | CPU | Memory |
---|---|---|---|
192.16.35.11 | k8s-m1 | 1 | 4G |
192.16.35.12 | k8s-m2 | 1 | 4G |
192.16.35.13 | k8s-m3 | 1 | 4G |
192.16.35.14 | k8s-n1 | 1 | 4G |
192.16.35.15 | k8s-n2 | 1 | 4G |
192.16.35.16 | k8s-n2 | 1 | 4G |
另外由所有 master 节点提供一组 VIP 192.16.35.10。
- 这边m为主要控制节点,n为应用程序工作节点。
- 所有操作全部用root使用者进行(方便用),以 SRE 来说不推荐。
- 可以下载Vagrantfile 来建立 Virtualbox 虚拟机集群。不过需要注意机器资源是否足够。
事前准备
开始安装前需要确保以下条件已达成:
- 所有节点彼此网络互通,并且k8s-m1SSH 登入其他节点为 passwdless。
- 所有防火墙与 SELinux 已关闭。如 CentOS:
$ systemctl stop firewalld && systemctl disable firewalld $ setenforce 0 $ vim /etc/selinux/config SELINUX=disabled
- 所有节点需要设定/etc/hosts解析到所有集群主机。
... 192.16.35.11 k8s-m1 192.16.35.12 k8s-m2 192.16.35.13 k8s-m3 192.16.35.14 k8s-n1 192.16.35.15 k8s-n2 192.16.35.16 k8s-n3
- 所有节点需要安装 Docker CE 版本的容器引擎:
$ curl -fsSL "https://get.docker.com/" | sh
不管是在 Ubuntu 或 CentOS 都只需要执行该指令就会自动安装最新版 Docker。
CentOS 安装完成后,需要再执行以下指令:
$ systemctl enable docker && systemctl start docker
所有节点需要设定/etc/sysctl.d/k8s.conf的系统参数。
$ cat