# Usando o CoreDNS para Descoberta de Serviços

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->
Essa página descreve o processo de atualização do CoreDNS e como instalar o CoreDNS ao invés de kube-dns.


## Antes de você começar

<p>Você precisa ter um cluster do Kubernetes e a ferramenta de linha de comando kubectl deve estar configurada para se comunicar com seu cluster. É recomendado executar esse tutorial em um cluster com pelo menos dois nós que não estejam atuando como hosts de camada de gerenciamento. Se você ainda não possui um cluster, pode criar um usando o <a href="/pt-br/docs/tasks/tools/#minikube">minikube</a> ou pode usar um dos seguintes ambientes:</p>
<ul>
<li><a href="https://labs.iximiuz.com/playgrounds?category=kubernetes&filter=all">iximiuz Labs</a></li>
<li><a href="https://killercoda.com/playgrounds/scenario/kubernetes">Killercoda</a></li>
<li><a href="https://kodekloud.com/public-playgrounds">KodeKloud</a></li>
</ul>
 
 
 O seu servidor Kubernetes deve estar numa versão igual ou superior a v1.9.
  <p>Para verificar a versão, digite  <code>kubectl version</code>.</p>



<!-- steps -->

## Sobre o CoreDNS

[CoreDNS](https://coredns.io) é um servidor DNS flexível e extensível
que pode servir como Kubernetes cluster DNS.
Como o Kubernetes, o projeto CoreDNS é hospedado pelo
<a class='glossary-tooltip' title='Cloud Native Computing Foundation' data-bs-toggle='tooltip' data-bs-placement='top' href='https://cncf.io/' target='_blank' aria-label='CNCF'>CNCF</a>.

Você pode usar o CoreDNS ao invés de kube-dns no seu cluster substituindo por
kube-dns em uma implantação existente, ou usando ferramentas como kubeadm
que fará a instalação e a atualização do cluster pra você.

## Instalando o CoreDNS

Para instalação manual, ou substituição do kube-dns, veja a documentação no 
[site do CoreDNS](https://coredns.io/manual/installation/).

## Migrando para CoreDNS

### Atualizando um cluster existente com kubeadm

No Kubernetes versão 1.21, kubeadm removeu o suporte para  `kube-dns` como uma aplicação DNS.
Para `kubeadm` v1.36, o único Cluster DNS suportado é o CoreDNS.

Você pode migrar para o CoreDNS quando usar o  `kubeadm` para atualizar o cluster que está usando 
`kube-dns`. Neste caso, `kubeadm` gera a configuração do CoreDNS
("Corefile") baseado no ConfigMap `kube-dns`, preservando a configuração para 
stub domains e upstream name server.

## Atualizando CoreDNS

Você pode verificar a versão do CoreDNS que o kubeadm instala para cada versão do Kubernetes na página 
[versão do CoreDNS no Kubernetes](https://github.com/coredns/deployment/blob/master/kubernetes/CoreDNS-k8s_version.md).

CoreDNS pode ser atualizado manualmente, caso você queria atualizar somente o CoreDNS
ou usar sua própria imagem customizada.
Há uma página de [instruções e passo-a-passo](https://github.com/coredns/deployment/blob/master/kubernetes/Upgrading_CoreDNS.md)
disponível para garantir uma atualização sem problemas.
Certifique-se que a configuração existente do CoreDNS ("Corefile") é mantida quando atualizar o seu cluster.

Se você está atualizando o seu cluster usando a ferramenta `kubeadm`, o `kubeadm`
pode cuidar da retenção da configuração existente do CoreDNS automaticamente.


## Ajustando o CoreDNS

Quando a utilização dos recursos é uma preocupação, pode ser útil ajustar a configuração do CoreDNS. Para mais detalhes, confira [documentação para escalonar o CoreDNS](https://github.com/coredns/deployment/blob/master/kubernetes/Scaling_CoreDNS.md).

## Próximos passos

Você pode configurar o [CoreDNS](https://coredns.io) para suportar mais casos de uso do que o
kube-dns suporta modificando a configuração do CoreDNS ("Corefile").
Para mais informações, veja a [documentação](https://coredns.io/plugins/kubernetes/)
do plugin `kubernetes` do CoreDNS, ou leia o artigo
[Custom DNS Entries For Kubernetes](https://coredns.io/2017/05/08/custom-dns-entries-for-kubernetes/) (em inglês) no blog do CoreDNS.
