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.