混合節點的修補程式安全更新 - Amazon EKS

協助改進此頁面

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

混合節點的修補程式安全更新

本主題會說明針對混合節點上執行的特定套件和相依性,就地執行安全更新修補的程序。基於最佳實務,我們建議您定期更新您的混合節點,以接收 CVE 和安全修補程式。

如需升級 Kubernetes 版本的步驟,請參閱 升級叢集的混合節點

可能需要安全修補的軟體範例之一是 containerd

Containerd

containerd 是 EKS 混合節點的標準 Kubernetes 容器執行時期和核心相依性,可用於管理容器生命週期,包括提取映像和管理容器執行。在混合節點上,您可以透過 nodeadm CLI 或手動安裝 containerd。視節點的作業系統而定,nodeadm 會從作業系統分散式套件或 Docker 套件安裝 containerd

containerd 中的 CVE 發布後,您可透過下列選項將您混合節點上的 containerd 升級至修補程式版本。

步驟 1:檢查修補程式是否已發布至套件管理工具

您可以參考對應的安全公告,檢查 CVE containerd 修補程式是否已發布至每個各自的作業系統套件管理工具:

如果您使用 Docker 儲存庫作為 containerd 的來源,您可以檢查 Docker 安全公告,以識別 Docker 儲存庫中提供的修補版本。

步驟 2:選擇安裝修補程式的方法

您可以透過三種方法來在節點上就地修補和安裝安全升級。您可使用哪種方法取決於套件管理工具中的作業系統是否提供該修補程式:

  1. 使用發布至套件管理工具的 nodeadm upgrade 安裝修補程式,請參閱步驟 2 a

  2. 使用套件管理工具直接安裝修補程式,請參閱步驟 2 b

  3. 安裝尚未在套件管理工具中發布的自訂修補程式。請注意,對於 containerd 的自訂修補程式,存在特殊考量,請參閱步驟 2 c

步驟 2 a:使用 nodeadm upgrade 進行修補

確認 containerd CVE 修補程式已發布至作業系統或 Docker 儲存庫 (Apt 或 RPM) 後,您可以使用 nodeadm upgrade 命令升級至 containerd 的最新版本。由於這並非 Kubernetes 版本升級,您必須將目前的 Kubernetes 版本傳遞至 nodeadm 升級命令。

nodeadm upgrade K8S_VERSION --config-source file:///root/nodeConfig.yaml

步驟 2 b:使用作業系統套件管理工具進行修補

或者,您也可以透過各自的套件管理工具進行更新,並使用它來升級 containerd 套件,如下所示。

Amazon Linux 2023

sudo yum update -y sudo yum install -y containerd

RHEL

sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo sudo yum update -y sudo yum install -y containerd

Ubuntu

sudo mkdir -p /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update -y sudo apt install -y --only-upgrade containerd.io

步驟 2 c:套件管理工具中尚未發布的 Containerd CVE 修補程式

如果 containerd 的修補程式版本僅可透過套件管理工具以外的其他方式獲得,例如在 GitHub 發行版本中,則您可以從官方 GitHub 網站安裝 containerd

  1. 如果機器已將叢集加入為混合節點,則需要執行 nodeadm uninstall 命令。

  2. 安裝官方 containerd 二進位檔。您可以使用 GitHub 上的步驟官方安裝步驟

  3. 執行 nodeadm install 命令,並將 --containerd-source 引數設定為 none,因此可透過 nodeadm 略過 containerd 安裝。對於節點正在執行的任何作業系統,您可以使用 containerd 來源中的 none 值。

    nodeadm install K8S_VERSION --credential-provider CREDS_PROVIDER --containerd-source none