Kubernetes 提供了许多云端平台与操作系统的安装方式,本章将以全手动安装方式来部署,主要是学习与了解 Kubernetes 创建流程。若想要了解更多平台的部署可以参考 Picking the Right Solution来选择自己最喜欢的方式。
本次安装版本为:
- Kubernetes v1.8.2
- Etcd v3.2.9
- Calico v2.6.2
- Docker v17.10.0-ce
预先准备信息
本教程将以下列节点数与规格来进行部署 Kubernetes 集群,操作系统可采用Ubuntu 16.x与CentOS 7.x:
IP Address | Role | CPU | Memory |
172.16.35.12 | master1 | 1 | 2G |
172.16.35.10 | node1 | 1 | 2G |
172.16.35.11 | node2 | 1 | 2G |
- 这边 master 为主要控制节点也是部署节点,node 为应用程序工作节点。
- 所有操作全部用root使用者进行,以 SRE 来说不推荐。
- 可以下载 Vagrantfile 来建立 Virtual box 虚拟机集群。
首先安装前要确认以下几项都已将准备完成:
- 所有节点彼此网络互通,并且master1 SSH 登入其他节点为 passwdless。
- 所有防火墙与 SELinux 已关闭。如 CentOS:
$ systemctl stop firewalld && systemctl disable firewalld $ setenforce 0 $ vim /etc/selinux/config SELINUX=disabled
- 所有节点需要设定/etc/host解析到所有主机。
... 172.16.35.10 node1 172.16.35.11 node2 172.16.35.12 master1
- 所有节点需要安装Docker或rtk引擎。这边采用Docker来当作容器引擎,安装方式如下:
$ curl -fsSL "https://get.docker.com/" | sh
不管是在 Ubuntu 或 CentOS 都只需要执行该指令就会自动安装最新版 Docker。
CentOS 安装完成后,需要再执行以下指令:$ systemctl enable docker && systemctl start docker
编辑/lib/systemd/system/docker.service,在ExecStart=..上面加入:
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
完成后,重新启动 docker 服务:
$ systemctl daemon-reload && systemctl restart docker
- 所有节点需要设定/etc/sysctl.d/k8s.conf的系统参数。
$ cat