> ## Content Index
> Fetch the complete content index at: https://scriptcrunch.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# How to Install CRI-O on Ubuntu For Kubernetes?
- URL: https://scriptcrunch.com/install-cri-o-ubuntu/
- Published: 2022-09-27T09:35:20.000Z
- Updated: 2026-06-23T08:55:59.000Z
- Author: Scriptcrunch Editorial
- Tags: Kubernetes, #Migrated-1758801465347, #wp, #wp-post, #Import 2025-09-25 11:57

A step-by-step [guide](https://scriptcrunch.com/tag/guides/) to installing [cri-o](https://cri-o.io/?ref=scriptcrunch.com) container runtime on Ubuntu for [kubeadm kubernetes setup.](https://scriptcrunch.com/install-kubernetes/)

Here is what you should know about crio

1. cri-o is an open-source container runtime created by the open-source community to replace the [Docker](https://scriptcrunch.com/tag/docker/) engine on [Kubernetes](https://scriptcrunch.com/tag/kubernetes/).
2. cri-o is a stable container engine that runs OCI-compliant runtimes.
3. cri-o is very stable because it is developed along with Kubernetes.

## Install CRI-O on Ubuntu

You can install cri-o runtime easily on Ubuntu using the following four steps.

### **Step 1:** Add the cri-o repository from OpenSUSE.

First, we need to add the cri-o repository from the openSUSE repo. The version we are using is 1.28

```
OS="xUbuntu_22.04"
VERSION="1.28"

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list
```

### **Step 2:** Add the cri-o gpg keys

Add the cri-o gpg release key to verify the downloaded package.

```
curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers.gpg add -
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers.gpg add -
```

### **Step 3:** Update and install cri-o

Run an update and install. crio and crio-runc packages.

```
sudo apt-get update
sudo apt-get install cri-o cri-o-runc cri-tools -y
```

### **Step 4:** Reload and enable cri-o

Reload the [linux](https://scriptcrunch.com/%3Ca%20href=)\-systemd/">systemd confirmations and enable crio utility to start on re-boots.

```
sudo systemctl daemon-reload
sudo systemctl enable crio --now
```

#### **Step 5:** Verify cri-o installation using crictl.

crictl utility is part of the cri-tools package. It is the CLI to interact with cri-o

```
sudo crictl info
```

You should see a JSON output as shown below.

```
{
  "status": {
    "conditions": [
      {
        "type": "RuntimeReady",
        "status": true,
        "reason": "",
        "message": ""
      },
      {
        "type": "NetworkReady",
        "status": false,
        "reason": "NetworkPluginNotReady",
        "message": "Network plugin returns error: No CNI configuration file in /etc/cni/net.d/. Has your network provider started?"
      }
    ]
  }
}
```

## Conclusion

When it comes to kubeadm Kubernetes setup, you need a container runtime like cri-o. Also, it is an important concept in [Kubernetes certification](https://scriptcrunch.com/tag/kubernetes-certifications/) exams. In the CKS certification exam, you will have to use the `crictl` command line utility for [troubleshooting](https://scriptcrunch.com/tag/troubleshooting/).

If you are preparing for Kubernetes certification, check out the [CKA exam guide](https://scriptcrunch.com/kubernetes-exam-guide/) and use the [CKA coupon](https://scriptcrunch.com/linux-foundation-coupon/) to get discounts on certification registration.

If you are learning Kubernetes, check out the [best Kubernetes tutorials.](https://scriptcrunch.com/kubernetes-tutorial-guides/)