kubernetes master 節(jié)點運行如下組件:
- kube-apiserver
- kube-scheduler
- kube-controller-manager
kube-scheduler 和 kube-controller-manager 可以以集群模式運行,通過 leader 選舉產(chǎn)生一個工作進程,其它進程處于阻塞模式。
對于 kube-apiserver,可以運行多個實例(本文檔是 3 實例),但對其它組件需要提供統(tǒng)一的訪問地址,該地址需要高可用。本文檔使用 keepalived 和 haproxy 實現(xiàn) kube-apiserver VIP 高可用和負載均衡
1)下載最新版本的二進制文件
wget https://dl.k8s.io/v1.10.4/kubernetes-server-linux-amd64.tar.gz
tar -xzvf kubernetes-server-linux-amd64.tar.gz
cd kubernetes
tar -xzvf kubernetes-src.tar.gz
將二進制文件拷貝到所有 master 節(jié)點:
cat > magic26_copy_all_node.sh << "EOF"
#!/bin/bash
# 將二進制文件拷貝到所有節(jié)點上
source /opt/k8s/bin/environment.sh
for node_ip in ${NODE_IPS[@]}
do
echo ">>> ${node_ip}"
scp /data/kubernetes/server/bin/* root@${node_ip}:/opt/k8s/bin/
ssh root@${node_ip} "chmod +x /opt/k8s/bin/*"
done
EOF