Em cenários específicos, é necessário gerencie e manter o CoreDNS manualmente devido a requisitos de negócios altamente personalizados. Os clusters do Alibaba Cloud Container Compute Service (ACS) oferecem suporte ao CoreDNS não gerenciado, o que permite aplicar configurações personalizadas. Este tópico descreve como usar o plug-in CoreDNS não gerenciado em um cluster ACS.
Pré-requisitos
Crie um cluster ACS. Para mais informações, consulte Criar um cluster ACS. Se o plug-in CoreDNS já estiver instalado no cluster ACS, desinstale a versão gerenciada seguindo o procedimento de instalação descrito neste tópico.
Ao criar um novo cluster, acesse Component Configurations > Service Discovery e selecione Disable.
O plug-in CoreDNS não gerenciado é um plug-in padrão de código aberto. Você é responsável pelos custos de recursos e pela operação e manutenção (O&M) do componente, além de resolver quaisquer problemas que surjam durante seu uso.
Por padrão, o modelo de plug-in fornecido pelo ACS usa o mecanismo de anti-afinidade para distribuir pods entre zonas. Se você configurar apenas uma zona para o ACS, somente uma réplica do CoreDNS será executada conforme esperado. Recomendamos configurar múltiplas zonas para garantir recuperação de desastres e alta disponibilidade.
Procedimento de instalação
Faça login no console do ACS. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, clique em Add-ons.
-
(Opcional) Na aba Networking, localize o CoreDNS (com o rótulo
Managed) e clique em Uninstall. Se o CoreDNS (Managed) não aparecer na lista de componentes, ignore esta etapa.AvisoA desinstalação do CoreDNS (Managed) torna o recurso de resolução de Domain Name System (DNS) do cluster indisponível. Certifique-se de que não há tráfego de negócios ativo no cluster antes de prosseguir com a desinstalação.
Ainda na aba Networking, localize o CoreDNS (sem o rótulo
Managed) e clique em Install.-
Configure os parâmetros conforme suas necessidades. Após confirme as definições, clique em OK para instale o componente.
ImportanteSe você não defina o parâmetro CpuRequest durante a instalação, o pod correspondente no cluster ACS terá apenas 250m de recursos de CPU disponíveis. Defina um valor adequado para CpuRequest para evitar exceções no cluster causadas por sobrecarga no pod.
O formulário de configuração inclui os seguintes parâmetros: MemoryRequest (padrão:
100Mi), CpuRequest (padrão:100m), MemoryLimit (padrão:2Gi) e CpuLimit (padrão: vazio). Para NodeSelector, a chave padrão ékubernetes.io/ose o valor élinux. O campo Tolerations vem vazio por padrão e pode ser ajustado conforme necessário. -
Conecte-se ao cluster via kubectl e execute o comando abaixo para consultar o pod:
kubectl get po -n kube-system|grep corednsSaída esperada:
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-85dc775876-sh558 1/1 Running 0 3m35s kube-system coredns-85dc775876-xzcpp 1/1 Running 0 3m35sO início do pod CoreDNS indica que o plug-in não gerenciado foi instalado com sucesso.
-
Para verificar se a resolução de DNS funciona corretamente, execute o seguinte comando dentro de um pod no cluster ACS:
nslookup kubernetesSaída esperada:
Server: 10.0.0.10 Address: 10.0.0.10#53 Name: kubernetes.default.svc.cluster.local Address: 10.0.0.1Essa saída confirma que a resolução de nomes de domínio foi bem-sucedida e que o CoreDNS opera normalmente.
Configurações personalizadas do CoreDNS
Personalize o comportamento do CoreDNS edite as configurações do Corefile, armazenadas no cluster ACS como um ConfigMap. Modifique diretamente o conteúdo do Corefile para ajustar o funcionamento do serviço. Exemplo:
-
Execute o comando a seguir para edite as configurações do Corefile do CoreDNS:
kubectl -n kube-system edit cm coredns -
Altere as configurações do Corefile tomando como base o conteúdo abaixo:
Corefile: | .:53 { errors health { lameduck 15s } ready kubeapi k8s_event { level info error warning } kubernetes cluster.local in-addr.arpa ip6.arpa { pods verified ttl 30 fallthrough in-addr.arpa ip6.arpa } prometheus :9153 # forward . /etc/resolv.conf { # Change the forward DNS server from the default in resolv.conf to 192.168.1.10. forward . 192.168.1.10 { prefer_udp } cache 30 log loop reload loadbalance }Após a modificação, o CoreDNS encaminhará automaticamente nomes de domínio externos ao cluster para o servidor DNS com endereço IP
192.168.1.10. Altere esse endereço IP conforme as necessidades do seu ambiente.
Referências
Adapte as configurações do plug-in CoreDNS não gerenciado aos seus requisitos de negócios. Para detalhes, consulte Configurar CoreDNS não gerenciado.
Para saber mais sobre políticas de DNS e resolução de nomes para pods em clusters ACS, veja Políticas de resolução e cache de DNS.
Para solucionar problemas relacionados ao CoreDNS, acesse Solução de problemas de DNS.