Voglio configurare un server d’inoltro condizionale con CoreDNS nel mio cluster Amazon Elastic Kubernetes Service (Amazon EKS).
Breve descrizione
È possibile utilizzare CoreDNS per configurare l'inoltro condizionale delle query DNS inviate ai domini risolti da un server DNS personalizzato. Per ulteriori informazioni, consulta Personalizzazione del servizio DNS sul sito web di Kubernetes.
Importante: Applica le modifiche indicate nella seguente risoluzione solo sul componente CoreDNS autogestito. Per modificare la configurazione del componente aggiuntivo CoreDNS in Amazon EKS, determina le impostazioni gestite da Amazon EKS controllando la configurazione del componente aggiuntivo Amazon EKS. Controlla la configurazione del componente aggiuntivo prima di apportare qualsiasi modifica, poiché la modifica di un campo gestito da Amazon EKS impedisce ad Amazon EKS di gestire il componente aggiuntivo. Ciò potrebbe comportare la sovrascrittura delle modifiche durante l’aggiornamento di un componente aggiuntivo.
Risoluzione
1. Modifica ConfigMap di CoreDNS e aggiungi la configurazione del server d'inoltro condizionale:
$ kubectl -n kube-system edit configmap coredns
Uscita:
apiVersion: v1
kind: ConfigMap
metadata:
annotations:
labels:
eks.amazonaws.com/component: coredns
k8s-app: kube-dns
name: coredns
namespace: kube-system
data:
Corefile: |
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
domain-name:53 {
errors
cache 30
forward . custom-dns-server
reload
}
Nota: Sostituisci domain-name con il nome di dominio. Sostituisci custom-dns-server con l'indirizzo IP del server DNS personalizzato.
2. Verifica che la risoluzione dei nomi di dominio funzioni:
$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name
Nota: Sostituisci domain-name con il nome di dominio.