0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【簡単Kubernetes】【CRI】KubernetesにおけるCRI(Container Runtime Interface)とは?

Posted at

Kubernetes(k8s)は、コンテナを管理・オーケストレーションするためのプラットフォームですが、コンテナを実際に動かす役割はコンテナランタイム (Container Runtime)」が担っています。

🔍 CRIとは?

CRI(Container Runtime Interface)は、Kubernetesのkubeletと、さまざまなコンテナランタイムとの間の標準化されたインターフェース(API)です。

Kubernetesが複数のランタイムと柔軟に連携できるようにするために設計されており、kubeletとコンテナランタイム間の通信をgRPCで行います。


🎯 CRI導入の背景

かつてのKubernetesは主にDockerに依存していましたが、以下の課題がありました:

  • DockerはKubernetes専用ではなく、不要な機能が多く含まれていた
  • 他の軽量ランタイム(例:containerd、CRI-O)との連携が困難だった

これを解決するため、CRIによってランタイムとkubeletを疎結合にする方針が取られました。


🧱 アーキテクチャ概要

+--------------------+
|      kubelet       |
+--------+-----------+
         |
         | gRPC (CRI)
         ↓
+--------+-----------+
| Container Runtime  | 例: containerd, CRI-O
+--------+-----------+
         ↓
     runc などの低レベルランタイム

🧰 対応ランタイム例

ランタイム 概要
containerd Docker由来の軽量ランタイム。K8s公式推奨。
CRI-O Kubernetes向けに開発されたシンプルなランタイム。
Docker v1.24で非推奨(dockershimが削除されました)。

🗂️ CRIが提供する主な機能

CRIは以下のような操作をkubeletに提供します:

  • Podの作成・削除
  • コンテナの起動・停止
  • イメージのプル
  • ログの取得

📌 Kubernetes v1.24以降の注意点

Kubernetes v1.24 以降では、DockerはCRIのサポート対象外となっています。
もしDockerを使い続けたい場合は、containerdやCRI-Oへの移行が必要です。


📝 まとめ

  • CRIはKubernetesとランタイム間の通信を標準化するための仕組みです。
  • CRIの導入により、Kubernetesはさまざまなランタイムに対応可能となり、柔軟性が向上しました。
  • 現在はcontainerdCRI-Oが主流です。

🔗 参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?