Ich möchte eine bedingte Weiterleitung mit CoreDNS in meinem Amazon Elastic Kubernetes Service (Amazon EKS)-Cluster konfigurieren.
Kurzbeschreibung
Sie können CoreDNS verwenden, um eine bedingte Weiterleitung für DNS-Anfragen zu konfigurieren, die an Domains gesendet werden, die von einem benutzerdefinierten DNS-Server aufgelösten werden. Weitere Informationen finden Sie unter Anpassen des DNS-Dienstes auf der Kubernetes-Website.
Wichtig: Wenden Sie die Änderungen in der folgenden Lösung nur auf ein selbstverwaltetes CoreDNS an. Um Konfigurationsänderungen am CoreDNS Amazon EKS-Add-On vorzunehmen, bestimmen Sie die Einstellungen, die Amazon EKS verwaltet, indem Sie die Konfiguration des Amazon EKS-Add-On überprüfen. Überprüfen Sie die Konfiguration des Add-On, bevor Sie Änderungen vornehmen, da das Ändern eines von Amazon EKS verwalteten Felds verhindert, dass Amazon EKS das Add-On verwaltet. Dies kann dazu führen, dass Ihre Änderungen überschrieben werden, wenn ein Add-On aktualisiert wird.
Lösung
1. Ändern Sie CoreDNS-ConfigMap und fügen Sie die Konfiguration der bedingten Weiterleitung hinzu:
$ kubectl -n kube-system edit configmap coredns
Ausgabe:
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
}
Hinweis: Ersetzen Sie domain-name durch den Namen der Domain. Ersetzen Sie custom-dns-server durch die IP-Adresse des benutzerdefinierten DNS-Servers.
2. Stellen Sie sicher, dass die Auflösung des Domainnamens funktioniert:
$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name
Hinweis: Ersetzen Sie domain-name durch den Namen der Domain.