Comment configurer un redirecteur conditionnel avec CoreDNS dans mon cluster Amazon EKS ?

Dernière mise à jour : 13/09/2021

Je souhaite configurer un redirecteur conditionnel avec CoreDNS dans mon cluster Amazon Elastic Kubernetes Service (Amazon EKS).

Brève description

Vous pouvez utiliser CoreDNS pour configurer le transfert conditionnel pour les requêtes DNS envoyées aux domaines résolus par un serveur DNS personnalisé. Pour plus d'informations, consultez Personnalisation du service DNS sur le site web Kubernetes.

Important : appliquez les modifications de la résolution suivante à CoreDNS autogéré uniquement. Pour apporter des modifications à la configuration du module complémentaire CoreDNS Amazon EKS, déterminez les paramètres qu'Amazon EKS gère en vérifiant la configuration du module complémentaire Amazon EKS. Vérifiez la configuration du module complémentaire avant d'apporter des modifications, car la modification d'un champ géré par Amazon EKS empêche Amazon EKS de gérer le module complémentaire. Cela peut entraîner le remplacement de vos modifications lors de la mise à jour d'un module complémentaire.

Solution

1.    Modifiez le ConfigMap CoreDNS et ajoutez la configuration du redirecteur conditionnel :

$ kubectl -n kube-system edit configmap coredns

Sortie :

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
    }

Remarque : remplacez domain-name par votre nom de domaine. Remplacez custom-dns-server par l'adresse IP de votre serveur DNS personnalisé.

2.    Vérifiez que la résolution des noms de domaine fonctionne :

$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name

Remarque : remplacez domain-name par votre nom de domaine.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?