Estoy tratando de agregar una reescritura a coredns para apuntar un dominio al equilibrador de carga del clúster (para que la solicitud de ese dominio se redirija nuevamente al clúster). Parece que no puedo encontrar una manera de afectar la configuración de corens de k3s. ¿Hay alguna forma de cambiarlo?
(Esto es para evitar https://github.com/jetstack/cert-manager/issues/1292#issuecomment-757283796 donde un pod intenta contactar a otro servicio en el clúster a través de un nombre DNS que apunta a la IP del enrutador, que falla debido a cómo funciona NAT).
Es posible configurar CoreDNS para mapear un dominio a otro dominio agregando una regla de rewrite . Suponga que tiene un dominio example.com y desea que ese dominio apunte al dominio google.com .
Para hacer esto en CoreDNS , puede usar el complemento de rewrite .
La configuración de CoreDNS se almacena en coredns ConfigMap en el espacio de nombres kube-system . Puedes editarlo usando:
root@kmaster:~# kubectl edit cm coredns -n kube-system Simplemente agregue una regla de rewrite , como en el siguiente ejemplo:
apiVersion: v1 data: Corefile: | .:53 { errors health rewrite name example.com google.com # mapping example.com to google.com ready ... A continuación, debe volver a cargar CoreDNS para usar la nueva configuración. Puede eliminar coredns Pod ( coredns se implementa como Deployment , por lo que se creará un nuevo Pod ) o puede enviarle un SIGUSR1 para indicarle que se recargue correctamente.
Finalmente podemos comprobar cómo funciona:
root@kmaster:~# kubectl run -it --rm --image=infoblox/dnstools:latest dnstools dnstools# host -t A google.com google.com has address 172.217.21.238 dnstools# host -t A example.com example.com has address 172.217.21.238Puede encontrar más información sobre el complemento de reescritura en la documentación de reescritura de Coredns .