Seguí la siguiente guía https://computingforgeeks.com/deploy-kubernetes-cluster-on-ubuntu-with-kubeadm/ en BareMetal Ubuntu 20.04 con 2 nodos.
Elegí Docker como mi Container Runtime e inicié el clúster con sudo kubeadm init --pod-network-cidr 10.16.0.0/16
Todo parece funcionar bien al principio . El problema que tengo es cuando un pod necesita conectarse a kube dns para resolver un nombre de dominio, aunque kubedns funciona bien, por lo que parece que el problema está en la conexión entre. Ejecuté la herramienta de depuración para el DNS https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-solution/ y cuando ejecuté kubectl exec -i -t dnsutils -- nslookup kubernetes obtuve el siguiente resultado :
Estos son los registros de mi kube dns: 
Y este es el resolv.conf dentro de mi pod: 
Esta es mi información de kubectl y kubeadm:
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:12:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"} kubeadm version: &version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:09:38Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}[editar con información adicional]
Yo uso Flannel y tuve un problema similar. Reiniciar la implementación de coredns lo resolvió por mí:
kubectl rollout restart -n kube-system deployment/coredns