Container Runtime全般 - oomichi/try-kubernetes GitHub Wiki

Kubernetesで利用される Container Runtime 全般を整理する。 各ワーカーノードに配備されている kubelet から、CRI Runtime、OCI Runtime がどのように使われているのか、CRI と OCI の仕様を含めて整理する。

CRI(Container Runtime Interface) Runtime

https://kubernetes.io/docs/concepts/architecture/cri/ より

CRI は、Kubernetes コンポーネントの再コンパイルせずに幅広い Container Runtime を kubelet が
使えるようにするための plugin interface である。
Kubernetes クラスタにおいて各ノードで稼働する Container Runtime が必要であり、
それにより kubelet は Pod とそれを構成するコンテナを起動可能になる。
CRI は kubelet と Container Runtime がコミュニケーションを行うための主要プロトコルである。
CRI は gRPC プロトコルで定義されている。

gRPC では特定のプログラミング言語に依存しない形で通信プロトコルを .proto というファイルで定義できる。 CRI の定義は https://github.com/kubernetes/cri-api/blob/c75ef5b/pkg/apis/runtime/v1/api.proto にある。

  • 疑問「CRI って Kubernetes に依存しないものと思っていたが、なんで kubernetes 配下のリポジトリで管理されているんだ?」