Upgrading K8s CNI from Docker to CRI-O
Shifting from Docker to CRI-O seems complicated right? You might be afraid about unnecessary downtimes if things go south. This guide shows you how you can migrate to CRI-O without even crying. No teary eyes ;)
With that, let's start by tearing down your cluster, one node at a time. Starting with your precious, the first control plane node.
- uninstall docker
# Do this after you see cri-o working fine
- install crio
# Install essentials # save the following config
- create /etc/containers/registries.conf for registry information error
/etc/containers/registries.conf [registries.search] ['registry.access.redhat.com', 'registry.fedoraproject.org', 'quay.io', 'docker.io', 'k8s.gcr.io'] [registries.insecure]  [registries.block] 
# Cri-o should be enabled from systemd for startup
- update kubelet for crio support
Full rundown of these config choices can be found at https://github.com/cri-o/cri-o/blob/main/tutorials/kubernetes.md
[Service] "KUBELET_EXTRA_ARGS=--container-runtime=remote --container-runtime-endpoint=unix:///var/run/crio/crio.sock --runtime-request-timeout=10m"
- update kubeadm to support crio
apiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration nodeRegistration: criSocket: /var/run/crio/crio.sock
# Use this command on your first control plane node