コンテナランタイムインターフェース(CRI)
CRIはプラグインインターフェースで、クラスターコンポーネントを再コンパイルすることなく、kubeletがさまざまなコンテナランタイムを使用できるようにします。
kubeletがPodとそのコンテナを起動できるように、クラスター内の各ノードで動作するコンテナランタイムが必要です。
コンテナランタイムインターフェース(CRI)は kubeletとコンテナランタイム間の通信のための主要なプロトコルです。
Kubernetesコンテナランタイムインターフェース(CRI)は、ノードコンポーネントであるkubeletとコンテナランタイムの間の通信のための主要なgRPCプロトコルを定義します。
API
Kubernetes v1.23 [stable]
kubeletは、gRPCを用いてコンテナランタイムに接続するときにクライアントとして機能します。
ランタイムおよびイメージサービスエンドポイントは、コンテナランタイムで利用できる必要があります。
これらは、--container-runtime-endpointコマンドラインフラグを使用してkubelet内で個別に設定できます。
Kubernetes v1.26以降では、kubeletはコンテナランタイムがv1 CRI APIをサポートしていることを要求します。
コンテナランタイムがv1 APIをサポートしていない場合、kubeletはノードを登録しません。
アップグレード
ノード上でKubernetesのバージョンをアップグレードすると、kubeletが再起動します。
コンテナランタイムがv1 CRI APIをサポートしていない場合、kubeletは登録に失敗し、エラーを報告します。
コンテナランタイムのアップグレードによってgRPCの再接続が必要な場合、接続を成功させるには、ランタイムがv1 CRI APIをサポートしている必要があります。
これには、コンテナランタイムが正しく設定された後、kubeletの再起動が必要になる場合があります。
次の項目
- CRIプロトコル定義の詳細を学ぶ