本次安装版本为:
- Kubernetes v1.8.4
- Etcd v3.2.9
- Calico v2.6.2
- Docker v17.09.1-ce
- CentOS v7.4 文件系统为ext4
预先准备信息
本教程将以下列节点数与规格来进行部署 Kubernetes 集群:
IP Address | Role | CPU | Memory |
10.0.0.162 | master (etcd) | 1 | 2G |
10.0.0.163 | node | 1 | 2G |
10.0.0.164 | node | 1 | 2G |
这边master为主要控制节点也是部署节点,node 为应用程序工作节点,所有操作全部用root使用者进行。由于我自身机器配置有限,所以etcd只配置一个节点并且和master在一台虚拟机上。
首先安装前要确认以下几项都已将准备完成:
- 所有节点彼此网络互通,并且master SSH 能免密钥登入其他节点。
-
所有防火墙与 SELinux 已关闭
systemctl stop firewalld && systemctl disable firewalld && setenforce 0 && sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
- 所有节点需要设定/etc/host解析到所有主机:
10.0.0.162 node162 10.0.0.163 node163 10.0.0.164 node164
- 编辑/lib/systemd/system/docker.service,在ExecStart=..上面加入:
ExecStartPost=/usr/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT systemctl daemon-reload && systemctl restart docker
-
所有节点需要设定/etc/sysctl.d/k8s.conf的系统参数:
cat <<EOF > /etc/sysctl.d/k8s.conf net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl -p /etc/sysctl.d/k8s.conf
- 在master需要安装CFSSL工具,这将会用来建立 TLS certificates:
export CFSSL_URL="https://pkg.cfssl.org/R1.2" wget "${CFSSL_URL}/cfssl_linux-amd64" -O /usr/local/bin/cfssl wget "${CFSSL_URL}/cfssljson_linux-amd64" -O /usr/local/bin/cfssljson chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson