コンテナ ランタイムでの containerd の使用

コンテナ ランタイムは、Kubernetes ノード上のコンテナとコンテナ イメージを管理するソフトウェアです。Containerd は、CNCF(Cloud Native Cloud Foundation)から移行したコンテナ ランタイムです。Kubernetes はネイティブでサポートされており、Kubernetes 用の Docker Engine よりもリソース効率と安全性が高いと考えられています。Kubernetes 1.20 までは、Docker Engine がプライマリ コンテナ ランタイムでした。しかし、Kubernetes の Docker Engine 統合コードである Dockershim は、Kubernetes 1.20 で非推奨になっており、Kubernetes 1.24 で削除される予定です。したがって、Anthos clusters on VMware(GKE On-Prem)ユーザーは、可能な限り早期にコンテナ ランタイムに containerd を使用することを検討する必要があります。

Anthos clusters on VMware 管理クラスタノードにおける Containerd のサポート

Anthos clusters on VMware 1.8 では、管理クラスタはすべてのノード(管理マスターノード、管理アドオンノード、ユーザー マスターノード)で containerd を使用します。これには、新しい管理クラスタと、1.7.x からアップグレードされた既存の管理クラスタの両方が該当します。

Anthos clusters on VMware ユーザー クラスタノードにおける Containerd のサポート

Anthos clusters on VMware 1.8 には、新しい ubuntu_containerd OS イメージタイプが導入されています。ubuntu_containerd OS イメージタイプは ubuntu と同じ OS イメージを使用しますが、ノードは Docker Engine ではなく containerd をコンテナ ランタイムとして使用するように構成されています。

バージョン 1.8 で osImageType が指定されていない場合は、デフォルトで ubuntu_containerd OS イメージタイプが新しいノードプールに使用されます。ただし、v1.7.x から既存のノードプールをアップグレードした場合は、アップグレード後もノードプールは Docker Engine を引き続き使用します。

バージョン 1.8 以降では、新しいノードプールで Docker Engine を引き続き使用する場合は、ubuntuosImageType として明示的に指定する必要があります。Docker のサポートは Kubernetes 1.24 で削除されるため、ubuntu_containerd OS イメージタイプを使用するようにノードプールを変換することを計画する必要があります。

ノードプールで使用される osImageType を更新する

ノードプールの osImageType を更新するをご覧ください。

Docker Engine から containerd への移行

以下のリソースでは、Docker Engine から containerd への移行に関する一般的な情報を提供します。

ノードイメージの種類を確認する

既存のノードで使用されているイメージタイプを確認できます。

kubectl でチェックするには:

kubectl get nodes -o wide --kubeconfig ADMIN_CLUSTER_KUBECONFIG

ここで

  • ADMIN_CLUSTER_KUBECONFIG は管理クラスタの kubeconfig ファイルのパスです。

出力は次のようになります。

NAME ...  OS-IMAGE ...         CONTAINER-RUNTIME
node-1    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-2    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-3    Ubuntu 18.04.5 LTS   containerd://1.4.3

CONTAINER-RUNTIME がランタイムとそのバージョンを出力します。

ノード内で確認するには、次のコマンドを実行します。

sudo crictl version

出力は次のようになります。

Version:  0.1.0
RuntimeName:  containerd
RuntimeVersion:  1.4.3-0ubuntu0~18.04.1
RuntimeApiVersion:  v1alpha2