DEV Community

Er. Bhupendra
Er. Bhupendra

Posted on

CRI (kubernate 's part 9)

Kubernetes में CRI (Container Runtime Interface) क्या है ⚙️

Image

Image

Image

Image

1️⃣ CRI क्या है

CRI (Container Runtime Interface) Kubernetes और container runtime के बीच communication interface है।

One line (Interview):
👉 CRI वह interface है जिससे kubelet container runtime (containerd, CRI-O) से communicate करता है।


2️⃣ CRI क्यों होता है

Kubernetes को containers run कराने के लिए container runtime चाहिए।

Example:

Docker
containerd
CRI-O
Enter fullscreen mode Exit fullscreen mode

लेकिन Kubernetes को हर runtime के लिए अलग code लिखना पड़ेगा।

इस problem को solve करने के लिए Kubernetes ने CRI interface बनाया।

👉 मतलब Kubernetes किसी भी container runtime के साथ काम कर सकता है।


3️⃣ CRI क्या-क्या काम करता है

1️⃣ kubelet और container runtime को connect करता है

Flow

kubelet → CRI → container runtime
Enter fullscreen mode Exit fullscreen mode

2️⃣ Container operations perform कराता है

CRI के through kubelet command देता है:

create container
start container
stop container
delete container
Enter fullscreen mode Exit fullscreen mode

3️⃣ Pod sandbox create करता है

Pod के network environment को create करता है।

Example

pod sandbox
Enter fullscreen mode Exit fullscreen mode

4️⃣ Container lifecycle manage करता है

Containers:

create
start
stop
restart
Enter fullscreen mode Exit fullscreen mode

4️⃣ CRI किस-किस से connection रखता है

1️⃣ kubelet (Direct)

kubelet CRI के through container runtime से communicate करता है।

kubelet → CRI
Enter fullscreen mode Exit fullscreen mode

2️⃣ Container Runtime (Direct)

CRI container runtime से interact करता है।

Example

containerd
CRI-O
Docker (older versions)
Enter fullscreen mode Exit fullscreen mode

Flow

CRI → container runtime
Enter fullscreen mode Exit fullscreen mode

3️⃣ Pods (Indirect)

CRI containers create करता है जो pods के अंदर run होते हैं।


4️⃣ kube-apiserver (Indirect)

CRI API server से direct connect नहीं करता।

Flow

kubectl
 ↓
kube-apiserver
 ↓
scheduler
 ↓
kubelet
 ↓
CRI
 ↓
container runtime
 ↓
container run
Enter fullscreen mode Exit fullscreen mode

5️⃣ Real Flow Example

Command:

kubectl run nginx --image=nginx
Enter fullscreen mode Exit fullscreen mode

Flow:

kubectl
 ↓
kube-apiserver
 ↓
scheduler
 ↓
kubelet
 ↓
CRI
 ↓
container runtime
 ↓
container start
Enter fullscreen mode Exit fullscreen mode

6️⃣ One Line Memory Trick 🧠

👉 CRI = kubelet और container runtime के बीच communication interface।

या

👉 CRI allows Kubernetes to work with different container runtimes.


7️⃣ Kubernetes Node Easy Trick 🔥

Node के 3 main components

kubelet → Node agent
kube-proxy → Networking
Container Runtime → Run containers
Enter fullscreen mode Exit fullscreen mode

और kubelet runtime से बात करता है

kubelet → CRI → container runtime
Enter fullscreen mode Exit fullscreen mode

Top comments (0)