Amazon EKS は Dockershim のサポートを終了しました - Amazon EKS

Amazon EKS は Dockershim のサポートを終了しました

Kubernetes では Dockershim サポートは終了しています。Kubernetes チームは Kubernetes バージョン 1.24 でランタイムを削除しました。詳細については、Kubernetes ブログの「Kubernetes は Dockershim から移行しています: コミットメントと次のステップ」を参照してください。

Amazon EKS は、Kubernetes バージョン 1.24 のリリース以降、Dockershim のサポートも終了しました。バージョン 1.24 以降、公式に公開される Amazon EKS AMI のランタイムは、containerd のみです。

Docker ソケットボリュームをマウントする Kubernetes ワークロードを表示するために使用できる kubectl プラグインがあります。詳細については、GitHub の「Docker ソケット (DDS) の検出器」を参照してください。1.24 より前のバージョンの Kubernetes を実行する Amazon EKS AMI は、Docker をデフォルトのランタイムとして使用します。ただし、これらの Amazon EKS AMI には、containerd を使用してサポートされているクラスターでワークロードをテストに使用できるブートストラップフラグオプションがあります。詳細については、「containerd ランタイムブートストラップフラグを有効にする」を参照してください。

既存の Kubernetes バージョン向け AMI の公開は、そのサポート終了日まで継続します。詳細については、「Amazon EKS Kubernetes リリースカレンダー」を参照してください。containerd でのワークロードのテストにさらに時間が必要な場合は、1.24 より前のサポートされているバージョンをご利用いただけます。しかし、公式の Amazon EKS AMI をそのバージョン 1.24 以降にアップグレードする場合は、ワークロードが containerd で実行可能なことを検証するようにしてください。

containerd ランタイムは、より信頼性の高いパフォーマンスとセキュリティを提供します。containerd は Amazon EKS 全体で標準化されているランタイムです。Fargate と Bottlerocket はすでに containerd のみを使用しています。containerd は、Dockershim 一般的な脆弱性と露出 (CVE) に対応するために必要な Amazon EKS AMI のリリースの数を最小限に抑えるのに役立ちます。Dockershim は内部では containerd を既に使用しているため、変更を加える必要がない場合があります。ただし、次のように変更が必要な状況があります。これには、変更が必要な可能性がある状況も含まれます。

  • Docker ソケットをマウントしているアプリケーションを変更する必要があります。例えば、コンテナで構築されたコンテナイメージが影響を受けます。多くのモニタリングツールも、Docker ソケットをマウントしています。ランタイムのモニタリング用のワークロードについては、その更新を待つか、再デプロイする必要がある場合があります。

  • 特定の Docker 設定に依存するアプリケーションでは、場合により変更が必要です。例えば、HTTPS_PROXY プロトコルのサポートが終了しているなどです。このプロトコルを使用するアプリケーションを更新する必要があります。詳細については、「Docker Docs」の「dockerd」を参照してください。

  • Amazon ECR 認証情報ヘルパーを使用してイメージをプルする場合は、kubelet イメージ認証情報プロバイダーへの切り替えが必要です。詳細については、「Kubernetes ドキュメント」の「kubelet イメージ認証情報プロバイダーを設定する」を参照してください。

  • Amazon EKS 1.24 は Docker をサポートしなくなったため、「Amazon EKS bootstrap script」(Amazon EKS ブートストラップスクリプト) が以前サポートしていた一部のフラグはサポートされなくなりました。Amazon EKS 1.24 以降に移行する前に、現在サポートされていないフラグへの参照をすべて削除する必要があります。

    • --container-runtime dockerd (containerd はサポートされる唯一の値です)

    • --enable-docker-bridge

    • --docker-config-json