Why can pods still communicate even though kubeadm does not install the pod network addon?

Cluster information:

Kubernetes version: 1.30
Cloud being used: (put bare-metal if not on a public cloud) bare-metal
Installation method: apt-get
Host OS: ubuntu
CNI and version:
CRI and version: cri-o:latest

I used three virtual machines to create a three-node K8S Cluster. After Kubeadm Init, Kubeadm Join was directly installed. Why can I communicate between PODs? According to the description in Creating a cluster with kubeadm | Kubernetes, Cluster DNS (CoreDNS) will not start up before a network is installed.

But I saw coredns was started through kubectl get pods -n kube-system .

In your nodes, do you see any files in the folder
/etc/cni/net.d/ ?

Also I guess when we run kubeadm init, it will schedule CoreDNS.
But that doesn’t mean pod to pod communication will be possible without a CNI plugin set up.

Thanks for your reply.

I see 11-crio-ipv4-bridge.conflist and .kubernetes-cni-keep in /etc/cni/net.d/.