k8s高可用架構
地址sealos, 讓kubernetes高可用不再需要keepalived haproxy和ansible,sealyun定製超級版kubeadm透過ipvs代理多個master,優雅解決k8s高可用問題。
ip role 10.103.97.200 master0 10.103.97.201 master0 10.103.97.202 master0 10.103.97.2 virtulIP
apiserver.cluster.local apiserver解析名
在每個節點上初始化
tar zxvf kube1.14.0.tar.gz && cd kube/shell && sh init.sh
用下載的kubeadm替換掉包內的kubeadm:
cp kubeadm /usr/bin/kubeadm
cat kubeadm-config.yaml :
apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration kubernetesVersion: v1.14.0 controlPlaneEndpoint: "apiserver.cluster.local:6443" # 使用解析名去訪問APIserver apiServer: certSANs: - 127.0.0.1 - apiserver.cluster.local - 172.20.241.205 - 172.20.241.206 - 172.20.241.207 - 172.20.241.208 - 10.103.97.2 # 虛擬IP等都加入到證書中 --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration mode: "ipvs" ipvs: excludeCIDRs: - "10.103.97.2/32" # 如果不加這個k8s會定時清理使用者建立的IPVS規則,導致代理失敗
在 master0 10.103.97.200 上
echo "10.103.97.200 apiserver.cluster.local" >> /etc/hosts kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs mkdir ~/.kube && cp /etc/kubernetes/admin.conf ~/.kube/config kubectl apply -f 安裝calico
執行完會輸出一些日誌,裡面包含join需要用的
在 master1 10.103.97.201 上
# 注意,在安裝之前解析到master0, 安裝成功後解析改成自己,因為kubelet kube-proxy配置的都是這個解析名,如果不改解析master0當機整個叢集就不可用了 echo "10.103.97.200 apiserver.cluster.local" >> /etc/hosts kubeadm join 10.103.97.200:6443 --token 9vr73a.a8uxyaju799qwdjv \ --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 \ --experimental-control-plane \ --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07 sed "s/10.103.97.200/10.103.97.201/g" -i /etc/hosts # 解析改也自己本機地址
在 master2 10.103.97.202 上,同master1
echo "10.103.97.200 apiserver.cluster.local" >> /etc/hosts kubeadm join 10.103.97.200:6443 --token 9vr73a.a8uxyaju799qwdjv \ --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 \ --experimental-control-plane \ --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07 sed "s/10.103.97.200/10.103.97.201/g" -i /etc/hosts
透過虛擬IP join到master上, 這個 會在node節點上建立一條ipvs規則,virturl server就是虛擬IP, realserver就是三個master。 然後再以一個static pod起一個守護程式守護這些規則,一旦哪個apiserver不可訪問了就清除realserver, apiserver通了之後再次新增回來
echo "10.103.97.2 apiserver.cluster.local" >> /etc/hosts # using vip kubeadm join 10.103.97.2:6443 --token 9vr73a.a8uxyaju799qwdjv \ --master 10.103.97.200:6443 \ --master 10.103.97.201:6443 \ --master 10.103.97.202:6443 \ --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 Architecture
+----------+ +---------------+ virturl server: 10.103.97.2:6443 | mater0 |< ----------------------| ipvs nodes | real servers: +----------+ |+---------------+ 10.103.97.200:6443 | 10.103.97.201:6443 +----------+ | 10.103.97.202:6443 | mater1 |<---------------------+ +----------+ | | +----------+ | | mater2 |<---------------------+ +----------+
叢集每個node節點都會建立一條ipvs規則用於代理所有的master節點。類似kube-proxy的ipvs實現。
然後起一個守護程式就健康檢查
apiservers /etc/kubernetes/manifests/sealyun-lvscare.yaml
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2644414/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 高可用架構架構
- Oracle 高可用架構Oracle架構
- MySQL 高可用架構之 MMM 架構MySql架構
- Canal高可用架構部署架構
- 【Redis】Sentinel 高可用架構Redis架構
- Redis Sentinel高可用架構Redis架構
- Oracle高可用架構(MAA)Oracle架構
- Mysql高可用架構方案MySql架構
- Twitter 高併發高可用架構架構
- MySQL高可用架構對比MySql架構
- AWS 高可用AWS架構方案架構
- mysql高可用架構MHA搭建MySql架構
- Keepalived 架構高可用 Mysql架構MySql
- mysql MHA 高可用架構部署MySql架構
- MySQL高可用架構設計分析MySql架構
- MQ系列9:高可用架構分析MQ架構
- 深度解析KubeEdge EdgeMesh 高可用架構架構
- MyCAT高可用方案和架構圖架構
- 理解HDFS高可用性架構架構
- Redis 高可用架構最佳實踐Redis架構
- 高可用架構之高可用的應用和服務架構
- 高可用架構設計全面詳解(8大高可用方案)架構
- 用 Hystrix 構建高可用服務架構架構
- MySQL 實現高可用架構之 MHAMySql架構
- MHA高可用架構的實現方式架構
- MySQL高可用架構-MMM、MHA、MGR、PXCMySql架構
- 高效能,高可用,安全的架構架構
- MySQL高可用架構之MHA實踐MySql架構
- jeesz分散式架構-分散式高可用分散式架構
- MySQL高可用架構之PXC實踐MySql架構
- 淺談MySQL叢集高可用架構MySql架構
- Redis高可用之戰:主從架構Redis架構
- MySQL主從原理, 高可用架構與高效能架構MySql架構
- MySQL高可用架構之Keepalived+主從架構部署MySql架構
- 大型網站技術架構(五)--網站高可用架構網站架構
- 高可用+高併發+負載均衡架構設計負載架構
- 搭建高可用k8sK8S
- 構建高併發高可用的電商平臺架構實踐架構