Chuyển đến nội dung chính

第 5 課:在所有節點上安裝 Containerd 和 KUBEADM

安裝帶有 cri 插件、crictl、kubeadm、kubelet、kubectl 最新版本的 containerd 2.x。配置containerd以使用systemd cgroup驅動程序,在初始化叢集之前拉取沙箱映像並進行測試。

🔒 DevSecOps — 第 5 課 第 5 課:在 上安裝 CONTAINERD 和 KUBEADM 所有節點

使用 Kubernetes HA 在本地部署微服務

第 2 部分:使用 kubeadm 的 Kubernetes HA 叢集__HTMLTAG_62___

xdev.asia

🎯 課程目標__HTMLTAG_68___

完成本課程後,您將:

  • ✅ 使用 CRI 外掛程式安裝 containerd 容器執行時間
  • ✅ 使用 systemd cgroup 驅動程式設定 containerd__HTMLTAG_75___
  • ✅ 從官方儲存庫安裝 kubeadm、kubelet、kubectl
  • ✅ 安裝 crictl 用於調試容器__HTMLTAG_79___
  • ✅ 預拉沙箱影像並驗證一切是否準備就緒

第 1 部分:容器運行時 — 為什麼選擇 CONTAINERD?

1.1。 K8s 中容器運行時的歷史

___程式碼區塊_0___

1.2。容器與 CRI-O

___HTMLTAG_104__HTMLTAG_105___維護者___HTMLTAG_106__HTMLTAG_107___ ___HTMLTAG_114__HTMLTAG_115___採用___HTMLTAG_116__HTMLTAG_117___ ___HTMLTAG_124__HTMLTAG_125___功能___HTMLTAG_126__HTMLTAG_127___ ___HTMLTAG_134__HTMLTAG_135___影像建構___HTMLTAG_136__HTMLTAG_137___ ___HTMLTAG_144__HTMLTAG_145___穩定性___HTMLTAG_146__HTMLTAG_147___
標準 容器 CRI-O
CNCF(Docker/Moby 起源) CNCF(紅帽起源)
非常寬(預設 EKS、GKE、AKS) OpenShift、RHEL 重點
多用途(docker CLI 相容) 僅限 K8s(輕量級)
透過 nerdctl/buildkit 支援 否(需 podman/buildah)
非常穩定 穩定

👉 選擇containerd:最受歡迎,大量文檔,與所有K8s發行版相容。


第 2 部分:容器設定

2.1。從 Docker 官方儲存庫安裝

___程式碼區塊_1___

2.2。配置containerd

___程式碼區塊_2___

🔬 深入探究 — 為什麼 SystemdCgroup = true? ___HTMLTAG_169__HTMLTAG_170___ ___程式碼區塊_3___

2.3。詳細的containerd配置(可選調整)

___程式碼區塊_4___

2.4。重新啟動並驗證containerd

___程式碼區塊_5___

第 3 部分:CRICTL 設定

3.1。什麼是 crictl?

crictl 是用於 CRI 相容容器執行時間的 CLI 工具。與 docker CLI 類似,但適用於 CRI:

程式碼區塊_6

3.2。 Crictl配置

___程式碼區塊_7___

第 4 部分:安裝 KUBEADM、KUBELET、KUBECTL

4.1。新增 Kubernetes 儲存庫

___程式碼區塊_8___

4.2。啟用 kubelet

___程式碼區塊_9___

4.3。 kubectl Bash 完成

___程式碼區塊_10___

第 5 部分:預張影像

5.1。在初始化之前拉取 K8s 鏡像

___程式碼區塊_11___

💡 提示: 如果節點沒有互聯網訪問權限,請在有互聯網的電腦上拉取圖像,導出到 tar,然後在節點上導入:

___程式碼區塊_12___

第 6 部分:飛行前檢查

6.1。 kubeadm 預檢檢查

___程式碼區塊_13___

💡 重點

    ___HTMLTAG_211__HTMLTAG_212___containerd 是標準容器執行時,從 Docker 官方儲存庫安裝 ___HTMLTAG_215__HTMLTAG_216___SystemdCgroup = true 是必要的 — 必須符合 kubelet cgroup 驅動程式 ___HTMLTAG_219__HTMLTAG_220___kubeadm、kubelet、kubectl 從 pkgs.k8s.io 安裝,然後 apt 標記保留____ ___HTMLTAG_225__HTMLTAG_226___預張影像節省叢集初始化時間,對於氣隙環境尤其重要 ___HTMLTAG_229__HTMLTAG_230___飛行前檢查有助於在執行 kubeadm init 之前偵測問題

🎯 練習

練習 1:在所有節點上安裝__HTMLTAG_238___
  • 在所有6個節點上安裝containerd + kubeadm(3個master + 3個worker)
  • 驗證每個節點的 SystemdCgroup = true
  • 在3個主節點上預先拉K8s鏡像
  • 執行飛行前檢查腳本,確保所有通過

練習 2:氣隙影像傳輸

  • 將 K8s 影像匯出到 tar 檔案
  • 轉移到沒有網路的節點__HTMLTAG_255___
  • 導入並驗證影像是否可用

📚 下一篇文章

在第6課:初始化第一個Kubernetes HA控制平面__HTMLTAG_264___中,我們將在具有HA配置的master1上執行kubeadm init,建立叢集憑證和kubeconfig。