您可以使用kube-up或kube-down腳本為Google Compute Engine複製Kubernetes母版。本文檔介紹了如何使用kube-up / down腳本來管理高可用性(HA)母版,以及如何實現HA母版以與GCE一起使用。
您需要具有Kubernetes集群,並且必須將kubectl命令行工具配置為與集群通信。如果您還沒有集群,則可以使用Minikube創建一個集群,也可以使用以下Kubernetes遊樂場之一:
要檢查版本,請輸入kubectl版本。
要創建新的HA兼容群集,必須在kube-up腳本中設置以下標誌:
(可選)您可以指定要在其中創建第一個主副本的GCE區域。設置以下標誌:
以下示例命令在GCE區域europe-west1-b中設置了HA兼容的集群:
MULTIZONE=true KUBE_GCE_ZONE=europe-west1-b ENABLE_ETCD_QUORUM_READS=true ./cluster/kube-up.sh
請注意,以上命令創建了一個具有一個主節點的集群;但是,您可以使用後續命令將新的主副本添加到群集中
創建與HA兼容的群集後,可以向其添加主副本。您可以通過使用帶有以下標誌的kube-up腳本來添加主副本:
您不需要設置MULTIZONE或ENABLE_ETCD_QUORUM_READS標誌,因為這些標誌是從啟動HA兼容群集時繼承的。
以下示例命令在現有的HA兼容群集上複製主伺服器:
KUBE_GCE_ZONE=europe-west1-c KUBE_REPLICATE_EXISTING_MASTER=true ./cluster/kube-up.sh
您可以使用帶有以下標誌的kube-down腳本從HA群集中刪除主副本:
以下示例命令從現有的HA集群中刪除主副本:
KUBE_DELETE_NODES=false KUBE_GCE_ZONE=europe-west1-c ./cluster/kube-down.sh
如果高可用性群集中的一個主副本失敗,則最佳實踐是從群集中刪除該副本,並在同一區域中添加一個新副本。以下示例命令演示了此過程:
刪除損壞的副本:
KUBE_DELETE_NODES=false KUBE_GCE_ZONE=replica_zone KUBE_REPLICA_NAME=replica_name ./cluster/kube-down.sh
添加一個新副本來代替舊副本:
KUBE_GCE_ZONE=replica-zone KUBE_REPLICATE_EXISTING_MASTER=true ./cluster/kube-up.sh
每個主副本將在以下模式下運行以下組件:
此外,API伺服器之前將有一個負載平衡器,它將外部和內部流量路由到它們。
啟動第二個主副本時,將創建一個包含兩個副本的負載均衡器,並將第一個副本的IP位址提升為負載均衡器的IP位址。同樣,在刪除倒數第二個主副本之後,將刪除負載均衡器,並將其IP位址分配給最後剩餘的副本。請注意,創建和刪除負載平衡器是複雜的操作,傳播它們可能需要一些時間(約20分鐘)。
系統沒有嘗試在Kubernetes服務中保留Kubernetes apiserver的最新列表,而是將所有流量定向到外部IP:
同樣,外部IP將由kubelet用於與主機通信。
Kubernetes為每個副本的外部公共IP和本地IP生成主TLS證書。沒有用於副本的臨時公共IP的證書;要通過其短暫的公共IP訪問副本,必須跳過TLS驗證。
為了允許etcd集群,將打開在etcd實例之間進行通信所需的埠(用於內部集群通信)。為了確保這種部署的安全性,etcd實例之間的通信使用SSL授權。
原文:https://kubernetes.io/docs/tasks/administer-cluster/highly-available-master/
本文:http://jiagoushi.pro/set-high-availability-kubernetes-masters
討論:請加入知識星球或者微信圈子【首席架構師圈】