🎯 課程目標__HTMLTAG_68___
完成本課程後,您將:
- ✅ 為 HA 拓樸建立 kubeadm 設定檔__HTMLTAG_73___
- ✅ 成功初始化第一個控制平面
- ✅ 了解憑證結構與憑證輪替__HTMLTAG_77___
- ✅ 複製 kubeconfig 並使用 kubectl 存取叢集
- ✅ 了解堆疊式 etcd 拓樸與外部 etcd
第 1 部分:KUBERNETES HA 拓樸
1.1。堆疊式 etcd 與外部 etcd
選項 A:堆疊式 etcd(大多數情況下建議)
程式碼區塊_0
✅ 伺服器很少 · ✅ 簡單 · ❌ etcd + API 耦合
選項 B:外部 etcd
程式碼區塊_1
✅ 隔離 · ✅ 獨立擴充 · ❌ 需要 6 台伺服器
👉 為本課程選擇堆疊式 etcd — 簡單,足以滿足大多數生產工作負載。僅非常大的叢集(超過 100 個節點)才需要外部 etcd。
第 2 部分:建立 KUBEADM 設定
2.1。 kubeadm-config.yaml 詳細資料
___程式碼區塊_2___2.2。重要參數解釋
| 參數 | 值 | 意義 |
|---|---|---|
| controlPlaneEndpoint | 10.10.20.100:6443 | HAProxy VIP — 所有組件都透過此處連接 |
| podSubnet | 10.244.0.0/16 | Pod IP 的 CIDR(最多 65,534 個 Pod) |
| 服務子網路 | 10.96.0.0/12 | ClusterIP 服務的 CIDR(1,048,574 個 IP) |
| 模式:ipvs | kube-proxy | IPVS 負載平衡(當服務很多時比 iptables 更好) |
| strictARP:正確 | kube-proxy | MetalLB L2 模式所需 |
| cgroup驅動程式:systemd | kubelet | 符合containerd SystemdCgroup = true |
⚠️ 關鍵: controlPlaneEndpoint 必須指向 VIP (HAProxy),而不是 master1 的 IP。這是 HA 的關鍵要素。
第 3 部分:叢集初始化
3.1。建立審核日誌目錄
___程式碼區塊_3___3.2。運行 kubeadm init
___程式碼區塊_4___⚠️ 立即呼叫:___HTMLTAG_178__HTMLTAG_179___
-
___HTMLTAG_181__HTMLTAG_182___--token:用於加入節點(24小時後過期)
___HTMLTAG_185__HTMLTAG_186___--discovery-token-ca-cert-hash:CA 憑證的 SHA256 雜湊
___HTMLTAG_189__HTMLTAG_190___--certificate-key:用於加入控制平面節點(2小時後過期)
3.3。設定 kubeconfig
___程式碼區塊_5___第 4 部分:憑證結構
4.1。架構證書
___程式碼區塊_6___4.2。檢查憑證是否過期
___程式碼區塊_7___第 5 部分:驗證 HA 準備情況
5.1。透過 VIP 檢查 API 伺服器
___程式碼區塊_8___5.2。保存連線命令(重要!)
___程式碼區塊_9___💡 重點
-
___HTMLTAG_214__HTMLTAG_215___controlPlaneEndpoint 必須指向 VIP (HAProxy),而不是特定 IP
___HTMLTAG_218__HTMLTAG_219___堆疊式 etcd 對於大多數部署而言足夠好,etcd 在控制平面上運行
___HTMLTAG_222__HTMLTAG_223___--upload-certs 標誌自動分發用於加入控制平面的憑證
___HTMLTAG_226__HTMLTAG_227___令牌將在 24 小時後過期,憑證金鑰將在 2 小時後過期 — 必須盡快儲存並加入節點
___HTMLTAG_230__HTMLTAG_231___ipvs 模式 + strictARP 對於 kube-proxy 是 MetalLB 的要求
___HTMLTAG_234__HTMLTAG_235___節點狀態NotReady在安裝CNI (Cilium)之前是正常的
🎯 練習
練習 1:初始化控制平面__HTMLTAG_243___
- 在 master1 上建立 kubeadm-config.yaml
- 執行 kubeadm init --config --upload-certs
- 設定 kubeconfig,驗證 kubectl 取得節點
- 呼叫連線指令
練習 2:驗證憑證
- 列出 /etc/kubernetes/pki/ 中的所有憑證
- 執行 kubeadm 憑證檢查過期
- 透過 VIP 驗證 API 伺服器:curl -sk https://VIP:6443/healthz
📚 下一篇文章
在第7課:加入控制平面與工作節點中,我們將master2、master3加入HA控制平面並將工作節點加入叢集。