Quero usar o CoreDNS para configurar um encaminhador condicional no meu cluster do Amazon Elastic Kubernetes Service (Amazon EKS).
Breve descrição
Com o CoreDNS, é possível encaminhar para um servidor DNS personalizado todas as consultas ao DNS enviadas a um domínio específico. Para mais informações, consulte Customizing DNS Service (Personalizando o Serviço DNS) no site do Kubernetes.
Importante: aplique as modificações a seguir somente ao CoreDNS autogerenciado. Para alterar as configurações do complemento CoreDNS do Amazon EKS, saiba quais configurações o Amazon EKS gerencia conferindo a página Gerenciamento de campos do Amazon EKS. Verifique a configuração do complemento antes de fazer qualquer alteração. Modificar um campo gerenciado pelo Amazon EKS impede que o serviço gerencie o complemento, e suas alterações podem ser substituídas quando um complemento for atualizado.
Resolução
1. Modifique o ConfigMap do CoreDNS e adicione a configuração do encaminhador condicional:
$ kubectl -n kube-system edit configmap coredns
Saída:
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
}
Observação: substitua domain-name pelo nome de domínio desejado. Substitua custom-dns-server pelo endereço IP do servidor DNS personalizado.
2. Verifique se a resolução do nome de domínio funciona:
$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name
Observação: substitua domain-name pelo nome de domínio desejado.