天天看點

K8s 叢集安裝工具 kubeadm 的落地實踐

kubeadm 是 Kubernetes 項目官方維護的支援一鍵部署安裝 Kubernetes 叢集的指令行工具。使用過它的讀者肯定對它僅僅兩步操作就能輕松組建叢集的方式印象深刻:

kubeadm init

以及

kubeadm join

這兩個指令可以快速建立 Kubernetes 叢集。當然這種便捷的操作并不能在生産環境中直接使用,我們要考慮元件的高可用布局,并且還需要考慮可持續的維護性。這些更實際的業務需求迫切需要我們重新梳理一下 kubeadm 在業界的使用情況,通過借鑒參考前人的成功經驗可以幫助我們正确的使用好 kubeadm。

首先,經典的 Kubernetes 高可用叢集的架構圖在社群官方文檔中定義如下:

K8s 叢集安裝工具 kubeadm 的落地實踐

從上圖架構中可知,Kubernetes 叢集的控制面使用 3 台節點把控制元件堆疊起來,形成備援的高可用系統。其中 etcd 系統作為叢集狀态資料存儲的中心,采用 Raft 一緻性算法保證了業務資料讀寫的一緻性。細心的讀者肯定會發現,控制面節點中 apiserver 是和目前主機 etcd 元件進行互動的,這種堆疊方式相當于把流量進行了分流,在叢集規模固定的情況下可以有效的保證元件的讀寫性能。

因為 etcd 鍵值叢集存儲着整個叢集的狀态資料,是非常關鍵的系統元件。官方還提供了外置型 etcd 叢集的高可用部署架構:

K8s 叢集安裝工具 kubeadm 的落地實踐

kubeadm 同時支援以上兩種技術架構的高可用部署&#x