Container Runtime Interface
The Container Runtime Interface (CRI) is the primary protocol for the communication between the kubelet and Container Runtime.
Container Runtime – It is the software that helps run & manage containers in a host operating system. There are a number of Container runtimes in the market from Docker, runC, containerd, etc.
So in order to make an abstraction over all the container runtime supported by the Kubernetes the community has introduced a new concept called CRI(Container Runtime Interface) that talks to the container runtime.
The kubelet talks to the Container Runtime Interface(CRI) using a gRPC framework where kubelet is the client and CRI is the server.
Garbage Collection
It is term that k8s use to clean up the cluster resource.
- Owner & Dependents In k8s there are some objects that are dependent on others. So k8s clean up the related object before deleting the object.
- Cascading Deletion k8s deletes an object that no longer has owner references. Like the pods left after deleting the ReplicaSet.
- Foreground Cascading Deletion –
- The object we are trying to delete goes in a progressive state.
- The Kubernetes API server sets the object’s metadata. deletion timestamp field to the time the object was marked for deletion.
- The Kubernetes API server also sets the metadata. finalizers field to foregroundDeletion.
- After going into the in-progress state the controller deletes all the dependent and removes the parent object.
- Background Cascading Deletion –
- Here the k8s deletes the owner object immediately.
- Then the controller clean up the dependent objects.
- Foreground Cascading Deletion –