コンテナ ランタイムについて

クラスタではコンテナ ランタイムを使用して、Kubernetes Pod の作成と実行を行います。GKE on Bare Metal のバージョン 1.13 より前のバージョンでは、コンテナ ランタイムは Docker Engine または containerd のいずれかでした。ただし、コンテナ ランタイムとして使用できるのは、GKE on Bare Metal のバージョン 1.13 以降の containerd のみです。

GKE on Bare Metal のバージョン 1.13 より前のバージョンでは、クラスタ構成ファイルの spec.nodeConfig.containerRuntime フィールドに値を指定して、コンテナ ランタイムを選択しました。GKE on Bare Metal のバージョン 1.13 以降では、containerRuntime フィールドは bmctl によって生成されたクラスタ構成ファイルに含まれなくなりました。

Kubernetes 1.24 では Docker Engine のサポートが終了

Kubernetes の dockershim コンポーネントによって、クラスタノードで Docker Engine コンテナ ランタイムを使用できます。ただし、Kubernetes 1.24 では dockershim コンポーネントが削除されました。GKE on Bare Meta バージョン 1.13 は Kubernetes 1.24 で実行されるため、バージョン 1.13 以降のクラスタでは Docker Engine を使用できません。

バージョン 1.13 クラスタを作成するか、バージョン 1.12 クラスタをバージョン 1.13 にアップグレードするかについては、containerd がデフォルトであり、サポートされる唯一のコンテナ ランタイムです。クラスタ構成ファイルでコンテナ ランタイムを指定する必要はありません。コンテナ ランタイムに containerd 以外を指定しようとすると、クラスタのアップグレードまたは作成オペレーションが失敗します。

開発でイメージの作成に使用する Docker のインストールは、Kubernetes クラスタ内にある Docker Engine コンテナ ランタイムとは関係ありません。Docker は、引き続きイメージの作成とアプリケーション コンテナのビルドに使用できます。そうしたコンテナは、クラスタ内で引き続き機能します。

bmctl コマンドでは、クラスタの作成などのオペレーションに Docker が必要になるため、管理ワークステーションには引き続き Docker をインストールする必要があります。この Docker の使用も、dockershim のサポート終了による影響を受けません。

コンテナ ランタイムのステータスを確認する

コンテナ ランタイムのステータスを確認するには、次のコマンドを実行します。

systemctl status containerd