このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
ハイブリッドノード用のセキュリティ更新プログラムにパッチを適用する
このトピックでは、ハイブリッドノードで実行されている特定のパッケージと依存関係を対象としたセキュリティ更新プログラムにインプレースでパッチを適用する手順について説明します。ベストプラクティスとして、ハイブリッドノードを定期的に更新して CVE とセキュリティパッチを受け取ることをお勧めします。
Kubernetes バージョンをアップグレードする手順については、「クラスターのハイブリッドノードをアップグレードする」を参照してください。
セキュリティパッチの適用が必要になるソフトウェアの一例が containerd です。
Containerd
       containerd は、標準の Kubernetes コンテナランタイムであり、EKS ハイブリッドノードとはコアな依存関係にあります。その用途は、イメージのプルやコンテナ実行の管理などコンテナのライフサイクルを管理することです。ハイブリッドノードでは、nodeadm CLI を利用するか手動で containerd をインストールできます。ノードのオペレーティングシステムに応じて、nodeadm は OS 配布のパッケージまたは Docker パッケージから containerd をインストールします。
containerd の CVE が公開されたら、以下のオプションを利用して、ハイブリッドノードで containerd をパッチ適用済みのバージョンにアップグレードできます。
ステップ 1: パッチがパッケージマネージャーに公開されているかどうかを確認する
containerd CVE パッチがそれぞれの OS パッケージマネージャーに公開されているかどうか、対応するセキュリティ速報を参照することで確認できます。
Docker リポジトリを containerd のソースとして使用している場合は、Docker セキュリティのお知らせ
ステップ 2: パッチのインストール方法を選択する
ノードにインプレースでパッチを適用し、セキュリティアップグレードをインストールする方法が 3 つあります。どの方法を使用できるかは、パッチをパッケージマネージャーでオペレーティングシステムから入手できるかどうかによって異なります。
ステップ 2 a: nodeadm upgrade でパッチを適用する
      containerd CVE パッチが OS や Docker リポジトリ (Apt または RPM) に公開されたことを確認したら、nodeadm upgrade コマンドを使用して containerd を最新バージョンにアップグレードできます。これは Kubernetes バージョンのアップグレードではないため、現在の Kubernetes バージョンを nodeadm アップグレードコマンドに渡す必要があります。
nodeadm upgradeK8S_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 をインストールできます。
- 
            
マシンがハイブリッドノードとしてクラスターに既に参加している場合は、
nodeadm uninstallコマンドを実行する必要があります。 - 
            
containerdの公式のバイナリをインストールします。GitHub の公式のインストール手順を使用できます。  - 
            
--containerd-source引数をnoneに設定してnodeadm installコマンドを実行します。nodeadmからcontainerdをインストールする操作がスキップされます。ノードでどのオペレーティングシステムが実行されていても、containerdソースでnoneの値を使用できます。nodeadm installK8S_VERSION--credential-providerCREDS_PROVIDER--containerd-source none