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 dockercrio
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.