Wie konfiguriere ich eine bedingte Weiterleitung mit CoreDNS in meinem Amazon EKS-Cluster?

Lesedauer: 2 Minute
0

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.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren