# Installing Container Runtime on the Kubernetes Worker Nodes In this lab you will install the Container Runtime Interface (CRI) on both worker nodes. CRI is a standard interface for the management of containers. Since v1.24 the use of dockershim has been fully deprecated and removed from the code base. [containerd replaces docker](https://kodekloud.com/blog/kubernetes-removed-docker-what-happens-now/) as the container runtime for Kubernetes, and it requires support from [CNI Plugins](https://github.com/containernetworking/plugins) to configure container networks, and [runc](https://github.com/opencontainers/runc) to actually do the job of running containers. Reference: https://github.com/containerd/containerd/blob/main/docs/getting-started.md ### Download and Install Container Networking The commands in this lab must be run on each worker instance: `node01`, and `node02`. Login to each controller instance using SSH Terminal. Here we will install the container runtime `containerd` from the Ubuntu distribution, and kubectl plus the CNI tools from the Kubernetes distribution. Kubectl is required on `node02` to initialize kubeconfig files for the worker-node auto registration. [//]: # (host:node01-node02) You can perform this step with [tmux](01-prerequisites.md#running-commands-in-parallel-with-tmux). 1. Update the apt package index and install packages needed to use the Kubernetes apt repository: ```bash { sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl } ``` 1. Set up the required kernel modules and make them persistent ```bash { cat < Prev: [Bootstrapping the Kubernetes Control Plane](./08-bootstrapping-kubernetes-controllers.md)