cri-o socket (crio.sock) vs dockershim socket (dockershim.sock) cri-o socket (crio.sock) vs dockershim socket (dockershim.sock) kubernetes kubernetes

cri-o socket (crio.sock) vs dockershim socket (dockershim.sock)


Kubelet (node daemon of Kubernetes) communicates with the container runtime running on the node via Container Runtime Interface. dockershim, as well as crio implement CRI, and act as a connectors between runtime and kubelet, but they refer to different container runtimes.

  • dockershim is a connector between kubelet and docker
  • crio is a connector between kubelet and runtime compliant with OCI spec (for example: runc)

There are so many ways of setting up container runtimes. Various kubernetes distributions uses various container runtimes as their defaults (for example, Google Kubernetes Engine installed containerD runtime with containerD-shim when I tried it last time)

I'd say that if you want to start playing with kubernetes and want to have it stable, you should start with docker first (use dockershim as a CRI connector). It's most commonly tested way of using K8S.