iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0
DevOps

30天完成本地部署 kubernetes系列 第 23

加強 kubernetes 的可靠性(3):建立高可用的 kubernetes 集群

  • 分享至 

  • xImage
  •  

前兩天嘗試在單 master 節點的情境下,進行 kubernetes 的備份。

因為 kubernetes 在 control plane 故障的情形下,工作負載還是能正常執行,因此在地端的主機資源數量不多,無法準備多台主機以提高 master 節點的冗餘時,使用單 master 節點搭配定期的備份,也是一個可選擇的方案。

但是如果主機資源充足的情形下,則可以直接部署 master 群集,以提高 control plane 的可用性。

接下來,使用以下配置進行 master 群集部署:

master1: 10.13.13.101
master2: 10.13.13.106
master3: 10.13.13.107
kube-apiserver: 10.13.13.201

使用新版本的 kubeadm 1.16.1,支援直接部署 control plane cluster 的參數:

  1. --control-plane-endpoint "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT":代入的DNS及PORT為 kube-apiserver的域名,port預設使用 6443。
  2. --upload-certs:自動將 control plane 會用到的 certificates 儲存到名為 kubeadm-certs 的 secret 中。

在 master1 上執行:

$ sudo kubeadm init \
    --pod-network-cidr 10.244.0.0/16 \
    --apiserver-advertise-address 10.13.13.101 \
    --control-plane-endpoint '10.13.13.201:6443' \
    --upload-certs

執行完畢後,除原本加入 worker 節點的指令外,還可得到加入 control plan 節點的指令,類似以下訊息:

...
You can now join any number of control-plane node by running the following command on each as a root:
    kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 --control-plane --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07

Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use kubeadm init phase upload-certs to reload certs afterward.

Then you can join any number of worker nodes by running the following on each as root:
    kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866

在其它要加入 control plan 的節點上,執行其中的指令:

$ sudo kubeadm join 10.13.13.201:6443 \
    --token 9vr73a.a8uxyaju799qwdjv \
    --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 \
    --control-plane \
    --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07

上一篇
加強 kubernetes 的可靠性(2):使用備份資料復原 kubernetes 集群
下一篇
異質節點的硬體資源管理(1):前言
系列文
30天完成本地部署 kubernetes30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言