Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Serviço Kubernetes do Azure (AKS) usa 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 Kubernetes ConfigMap para substituir as configurações padrão. Para ver o AKS CoreDNS ConfigMaps padrão, use o kubectl get configmaps --namespace=kube-system coredns --output yaml comando.
Este artigo mostra como usar o ConfigMaps para opções básicas de personalização CoreDNS no Serviço Kubernetes do Azure (AKS).
Observação
Anteriormente, o AKS usava kube-dns para o gerenciamento e resolução de DNS de cluster, mas agora está obsoleto.
kube-dns oferecia diferentes opções de personalização através de um mapa de configuração do Kubernetes. CoreDNS não é retrocompatível com kube-dns. Você deve atualizar todas as personalizações anteriores para trabalhar com CoreDNS.
Pré-requisitos
- Este artigo pressupõe que você tenha um cluster AKS existente. Se precisar de um cluster AKS, você pode criar 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 mudar entre versões.
Suporte a plug-ins
Todos os plugins CoreDNS integrados são suportados. Nenhum complemento/plug-in de terceiros é suportado.
Importante
Quando você cria configurações como as deste artigo, os nomes especificados na data seção devem terminar em .server ou .override. Esta convenção de nomenclatura é definida no AKS CoreDNS ConfigMap padrão, que você pode visualizar usando o kubectl get configmaps --namespace=kube-system coredns --output yaml comando.
Configurar regravações de nomes 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 deverá ser capaz de resolver o nome de domínio reescrito.
Crie o ConfigMap usando o
kubectl apply configmapcomando e 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 contínua para recarregar o ConfigMap e permitir que o Agendador do Kubernetes reinicie o CoreDNS sem tempo de inatividade usando o
kubectl rollout restartcomando.kubectl --namespace kube-system rollout restart deployment coredns
Especifique 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 oforwardnome e<domain to be rewritten>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 <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 contínua para recarregar o ConfigMap e permitir que o Agendador do Kubernetes reinicie 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 domínio personalizado ConfigMap, o cluster AKS não pode resolver o endereço.
Crie um novo arquivo chamado
corednsms.yamle cole na configuração de exemplo a seguir. Certifique-se de atualizar 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 contínua para recarregar o ConfigMap e permitir que o Agendador do Kubernetes reinicie 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 o exemplo de configuração a seguir. Certifique-se de atualizar os domínios personalizados e 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 contínua para recarregar o ConfigMap e permitir que o Agendador do Kubernetes reinicie o CoreDNS sem tempo de inatividade usando o
kubectl rollout restartcomando.kubectl --namespace kube-system rollout restart deployment coredns
Adicionar mapeamentos de host-para-IP personalizados
Crie um arquivo chamado
corednsms.yamle cole o exemplo de configuração a seguir. Certifique-se de atualizar os endereços IP e 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 contínua para recarregar o ConfigMap e permitir que o Agendador do Kubernetes reinicie o CoreDNS sem tempo de inatividade usando o
kubectl rollout restartcomando.kubectl --namespace kube-system rollout restart deployment coredns
Próximos passos
- Para solucionar problemas de CoreDNS, consulte Solucionar problemas com CoreDNS no Serviço Kubernetes do Azure (AKS).
- Para saber mais sobre o comportamento de dimensionamento automático do CoreDNS, consulte Autoscaling CoreDNS no Serviço Kubernetes do Azure (AKS).