Recently I am looking at the knowledge of CRI and CNI. What are the default CRI implementation and default CNI implementation in K8S?
There is no such thing as default CRI implementation and default CNI implementaton.
It all depends on the Kubernetes distribution you're using.
For example, GKE has its own CNI implementation but nothing prevents you to use Calico.
Regarding the CRI the most common are:
Docker
CRI-O
Containerd
The most 'default' one being Docker.
Network plugins in Kubernetes come in a few flavors:
CNI plugins: adhere to the appc/CNI specification, designed for interoperability
Kubenet plugin: implements basic cbr0 using the bridge and host-local CNI plugins
Currently Calico is the only CNI plugin that the kubeadm project performs e2e tests against. You can find more info about installing a Pod network here.
Please let me know if that helped.