Je souhaite configurer un redirecteur conditionnel avec CoreDNS dans mon cluster Amazon Elastic Kubernetes Service (Amazon EKS).
Brève description
Utilisez CoreDNS pour configurer un redirecteur conditionnel pour les requêtes DNS envoyées aux domaines résolus par un serveur DNS personnalisé. Pour plus d’informations, consultez la section Personnalisation du service DNS sur le site Web de Kubernetes.
Important : Avant de modifier la configuration du module complémentaire CoreDNS Amazon EKS, vous devez déterminer les paramètres gérés par Amazon EKS. Vous trouverez ces informations dans la configuration du module complémentaire Amazon EKS. Lorsque vous modifiez un champ géré par Amazon EKS, Amazon EKS ne peut pas gérer le module complémentaire. Amazon EKS peut remplacer vos modifications lorsqu’un module complémentaire est mis à jour.
Résolution
La résolution suivante s'applique aux configurations CoreDNS autogérées et aux configurations de modules complémentaire Amazon EKS.
Configuration d'un module complémentaire autogéré
Exécutez la commande suivante pour modifier le CoreDNS ConfigMap et ajouter la configuration personnalisée du redirecteur conditionnel DNS :
$ kubectl -n kube-system edit configmap coredns
Les résultats se présentent de la manière suivante :
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 et custom-dns-server par l'adresse IP de votre serveur DNS personnalisé.
Configuration d'un module complémentaire Amazon EKS
Pour apporter les modifications au module complémentaire CoreDNS géré par Amazon EKS, procédez comme suit :
-
Ouvrez la console Amazon EKS.
-
Dans le volet de navigation, choisissez Clusters.
-
Choisissez le nom de votre cluster.
-
Choisissez l’onglet Modules complémentaires.
-
Sélectionnez le module complémentaire CoreDNS, puis choisissez Modifier.
-
Sur la page d'édition, choisissez la section Paramètres de configuration facultatifs. Dans la section Valeurs de configuration, ajoutez la configuration personnalisée du redirecteur conditionnel DNS :
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 et custom-dns-server par l'adresse IP de votre serveur DNS personnalisé.
Vérifiez la résolution du nom de domaine
Pour vérifier que la résolution des noms de domaine fonctionne, exécutez les commandes suivantes :
$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name
Remarque : Remplacez domain-name par le nom de votre domaine.