Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O AKS (Serviço de Kubernetes do Azure) usa o CoreDNS para gerenciamento e resolução de DNS de cluster com todos os clusters 1.12.x e superiores. O AKS é um serviço gerenciado, portanto, você não pode modificar a configuração principal do CoreDNS (um CoreFile). Em vez disso, você usa um ConfigMap do Kubernetes para substituir as configurações padrão. Para ver os ConfigMaps padrão de CoreDNS do AKS, use o comando kubectl get configmaps --namespace=kube-system coredns --output yaml.
Este artigo mostra como usar o ConfigMaps para opções básicas de personalização do CoreDNS no AKS (Serviço de Kubernetes do Azure).
Observação
Anteriormente, o AKS usava kube-dns para gerenciamento e resolução de DNS de cluster, mas agora foi descontinuado.
Em kube-dns, são oferecidas diferentes Opções de personalização por meio de um mapa de configurações do Kubernetes. O CoreDNS não é retrocompatível com kube-dns. Você deve atualizar as personalizações anteriores para trabalhar com o CoreDNS.
Pré-requisitos
- Este artigo considera que já existe um cluster do AKS. Se você precisar de um cluster do AKS, crie um usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.
- Verifique a versão do CoreDNS que você está executando. Os valores de configuração podem ser alterados entre as versões.
Suporte ao plug-in
Todos os plug-ins CoreDNS internos são compatíveis. Nenhum complemento/plug-in de terceiros é compatível.
Importante
Quando você cria configurações como as deste artigo, os nomes especificados na data seção devem terminar em .server ou .override. Essa convenção de nomenclatura é definida no ConfigMap do CoreDNS do AKS padrão, que você pode visualizar usando o comando kubectl get configmaps --namespace=kube-system coredns --output yaml.
Configurar reescritas de nome DNS
Crie um arquivo nomeado
corednsms.yamle cole na configuração de exemplo a seguir. Certifique-se de substituir<domain to be rewritten>por seu próprio nome de domínio totalmente qualificado (FQDN).apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | <domain to be rewritten>.com:53 { log errors rewrite stop { name regex (.*)\.<domain to be rewritten>\.com {1}.default.svc.cluster.local answer name (.*)\.default\.svc\.cluster\.local {1}.<domain to be rewritten>.com } forward . /etc/resolv.conf # You can redirect this to a specific DNS server such as 10.0.0.10, but that server must be able to resolve the rewritten domain name }Importante
Se você redirecionar para um servidor DNS, como o IP do serviço CoreDNS, esse servidor DNS precisará ser capaz de resolver o nome de domínio reescrito.
Crie o ConfigMap usando o comando
kubectl apply configmape especifique o nome do seu manifesto YAML.kubectl apply -f corednsms.yamlVerifique se as personalizações foram aplicadas usando o
kubectl get configmapscomando.kubectl get configmaps --namespace=kube-system coredns-custom -o yamlExecute uma reinicialização sem interrupção para recarregar o ConfigMap e habilitar o Agendador do Kubernetes para reiniciar o CoreDNS sem tempo de inatividade usando o
kubectl rollout restartcomando.kubectl --namespace kube-system rollout restart deployment coredns
Especificar um servidor de encaminhamento para o tráfego de rede
Crie um arquivo nomeado
corednsms.yamle cole na configuração de exemplo a seguir. Certifique-se de substituir o nomeforwarde<domain to be rewritten>pelos seus próprios valores.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension <domain to be rewritten>.com:53 { forward foo.com 1.1.1.1 }Crie o ConfigMap usando o
kubectl apply configmapcomando.kubectl apply -f corednsms.yamlExecute uma reinicialização sem interrupção para recarregar o ConfigMap e habilitar o Agendador do Kubernetes para reiniciar o CoreDNS sem tempo de inatividade usando o
kubectl rollout restartcomando.kubectl --namespace kube-system rollout restart deployment coredns
Usar domínios personalizados
Talvez você queira configurar domínios personalizados que só podem ser resolvidos internamente. Por exemplo, talvez você queira resolver o domínio personalizado puglife.local, que não é um domínio de nível superior válido. Sem um ConfigMap de domínio personalizado, o cluster do AKS não pode resolver o endereço.
Crie um novo arquivo nomeado
corednsms.yamle cole na configuração de exemplo a seguir. Atualize o domínio personalizado e o endereço IP com seus próprios valores.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: puglife.server: | # You can select any name here, but it must end with the .server file extension puglife.local:53 { errors cache 30 forward . 192.11.0.1 # This is my test/dev DNS server }Crie o ConfigMap usando o
kubectl apply configmapcomando.kubectl apply -f corednsms.yamlExecute uma reinicialização sem interrupção para recarregar o ConfigMap e habilitar o Agendador do Kubernetes para reiniciar o CoreDNS sem tempo de inatividade usando o
kubectl rollout restartcomando.kubectl --namespace kube-system rollout restart deployment coredns
Configurar domínios de stub
Crie um arquivo chamado
corednsms.yamle cole a seguinte configuração de exemplo. Atualize os domínios personalizados e os endereços IP com seus próprios valores.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension abc.com:53 { errors cache 30 forward . 1.2.3.4 } my.cluster.local:53 { errors cache 30 forward . 2.3.4.5 }Crie o ConfigMap usando o
kubectl apply configmapcomando e especifique.kubectl apply -f corednsms.yamlExecute uma reinicialização sem interrupção para recarregar o ConfigMap e habilitar o Agendador do Kubernetes para reiniciar o CoreDNS sem tempo de inatividade usando o
kubectl rollout restartcomando.kubectl --namespace kube-system rollout restart deployment coredns
Adicionar mapeamentos personalizados de host-to-IP
Crie um arquivo chamado
corednsms.yamle cole a seguinte configuração de exemplo. Atualize os endereços IP e os nomes de host com seus próprios valores.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom # This is the name of the ConfigMap you can overwrite with your changes namespace: kube-system data: test.override: | # You can select any name here, but it must end with the .override file extension hosts { 10.0.0.1 example1.org 10.0.0.2 example2.org 10.0.0.3 example3.org fallthrough }Crie o ConfigMap usando o
kubectl apply configmapcomando.kubectl apply -f corednsms.yamlExecute uma reinicialização sem interrupção para recarregar o ConfigMap e habilitar o Agendador do Kubernetes para reiniciar o CoreDNS sem tempo de inatividade usando o
kubectl rollout restartcomando.kubectl --namespace kube-system rollout restart deployment coredns
Próximas etapas
- Para solucionar problemas do CoreDNS, consulte Solucionar problemas com o CoreDNS no AKS (Serviço de Kubernetes do Azure).
- Para saber mais sobre o comportamento de autoscaling do CoreDNS, consulte Autoscaling do CoreDNS no AKS (Serviço de Kubernetes do Azure).