Kubernetes v1.10.x HA 全手动安装教程(TL;DR)

本篇延续过往手动安装方式来部署 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 AddressHostnameCPUMemory
192.16.35.11k8s-m114G
192.16.35.12k8s-m214G
192.16.35.13k8s-m314G
192.16.35.14k8s-n114G
192.16.35.15k8s-n214G
192.16.35.16k8s-n214G

 

另外由所有 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