¿Cómo configurar /etc/resolv.conf en mis pods kube-flannel-ds de un clúster k8s?

¿Cómo configurar /etc/resolv.conf en mis pods kube-flannel-ds de un clúster k8s?

Estoy ejecutando un clúster de Kubernetes (bare metal; v1.23) con un maestro y tres trabajadores. Estoy usando franela (v0.19.2) para la red pod.

En mi syslog veo errores como: Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: 46.38.252.230 46.38.225.230 2a03:4000:8000::fce6, que tiene su origen en los kube-flannel-dspods. Dentro de las vainas veo:

$ cat /etc/resolv.conf

nameserver 46.38.252.230
nameserver 46.38.225.230
nameserver 2a03:4000:0:1::e1e6
search

Como hay más de tres líneas, aparece el mensaje de error. Pero no estoy seguro de cómo resolver esto porque no sé cómo se genera este archivo de configuración.

En la creación del clúster k8s hice:kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.19.2/Documentation/kube-flannel.yml >> pod_network_setup.txt


Actualizar

Los nodos trabajadores se ejecutan en una máquina ubuntu 22.04.

gato /etc/resolv.conf

# This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
#
# This file might be symlinked as /etc/resolv.conf. If you're looking at
# /etc/resolv.conf and seeing this text, you have followed the symlink.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0 trust-ad
search .

estado de resolución

Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub
Current DNS Server: 46.38.252.230
       DNS Servers: 46.38.252.230 46.38.225.230 2a03:4000:8000::fce6 2a03:4000:0:1::e1e6

Link 2 (eth0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 3 (docker0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Respuesta1

Si dnsPolicyestá configurado en Default, los pods de Kubernetes heredan la configuración DNS de los nodos trabajadores en los que se encuentran.

Dependiendo de la distribución de Linux de su trabajador y otros detalles, puede encontrar esa configuración en:

  • /etc/resolv.conf

  • /etc/dhcp/dhclient.conf

  • /etc/sysconfig/network-scripts/ (Fedora, Centos y RHEL)

información relacionada