Compartilhar via


Configurar um resolvedor DNS personalizado no cluster do seu Red Hat OpenShift no Azure (ARO)

Este artigo fornece os detalhes necessários para configurar seu cluster Azure Red Hat OpenShift (ARO) para usar um servidor DNS personalizado. Ele contém os requisitos de cluster para uma implantação básica do ARO.

Antes de começar

Este artigo presume que você esteja criando um novo cluster ou tenha um existente com as atualizações mais recentes aplicadas. Se você precisar de um cluster ARO, consulte o Início rápido do ARO para um cluster público ou o tutorial de cluster privado para um cluster privado. As etapas de configuração do cluster para usar um servidor DNS personalizado são iguais para clusters públicos e privados.

Confirmar a compatibilidade do cluster com o DNS personalizado

Confirme se o cluster está qualificado para dar suporte a esse recurso validando a existência do 99-master-aro-dns e do 99-worker-aro-dns machineconfigs.

oc get machineconfig

Se os resultados do comando acima incluírem as machineconfigs a seguir, seu cluster estará qualificado para o suporte ao DNS personalizado.

NAME                 GENERATEDBYCONTROLLER                      IGNITIONVERSION   AGE
...
99-master-aro-dns                                               2.2.0             54d
99-worker-aro-dns                                               2.2.0             54d
...

Visão geral da arquitetura de DNS

À medida que cada nó no cluster Azure Red Hat OpenShift é ativado e associado à rede, o DHCP configura a máquina virtual com informações como o endereço IP e qual servidor DNS usar.

Esta é uma visão geral do fluxo de processo para obter a configuração:

DNS

Um ponto importante ao usar seu próprio servidor DNS em vez do servidor DNS padrão na rede virtual é que você perde a configuração fornecida pelo servidor DNS. Os nomes de máquina virtual não serão mais resolvidos por meio do DNS na rede.

Visão geral do processo de atualização

A configuração de um servidor DNS personalizado para o cluster é dividida em duas etapas.

  1. A modificação da definição de configuração de servidores DNS da rede virtual.
  2. A reinicialização dos nós no cluster para fazer alterações.

Configurar os servidores DNS personalizados

As etapas a seguir também podem ser seguidas na linha de comando, mas esta documentação está voltada ao uso da interface da Web do portal.

Atualizar a configuração de DNS na rede virtual

Entre no portal do Azure e acesse a rede virtual que será atualizada. Selecione Servidores DNS na lista de configurações de redes virtuais.

Selecionar DNS

Na tela de configuração de DNS, selecione Personalizado na configuração do botão de opções. Insira os endereços IP de seus servidores DNS.

Importante

Se você optar por especificar um servidor DNS personalizado, não será mais capaz de resolver os nomes dos nós na rede virtual por meio do DNS. Os nós só estarão acessíveis por meio do endereço IP.

Especificar servidores DNS personalizados

Selecione Salvar.

Observação

Conforme mostrado na interface do portal, é necessário reinicializar todas as máquinas virtuais para que as alterações entrem em vigor.

Você deve receber uma notificação de que a atualização foi bem-sucedida.

Confirmar alterações no DNS

Reinicializar normalmente o cluster

Estas etapas requerem um kubeconfig válido para o cluster. Confira este tutorial para obter detalhes sobre como obter um kubeconfig.

Os snippets de código a seguir criam machineconfigs de noop para nós mestre e de trabalho. Isso permite iniciar reinicializações sem interrupção nos nós de trabalho ou mestre. Para obter mais informações sobre o MCO (Operador de Config da Máquina), consulte o código-fonte ou os documentos do OpenShift para o MCO .

Definições de MachineConfig

Reinicializações de trabalho:

apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: worker
  name: 25-machineconfig-worker-reboot
spec:
  config:
    ignition:
      version: 2.2.0
    storage:
      files:
      - contents:
          source: data:text/plain;charset=utf-8;base64,cmVzdGFydAo=
        filesystem: root
        mode: 0644
        path: /etc/mco-noop-worker-restart.txt

Reinicializações de mestre:

apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: master
  name: 25-machineconfig-master-reboot
spec:
  config:
    ignition:
      version: 2.2.0
    storage:
      files:
      - contents:
          source: data:text/plain;charset=utf-8;base64,cmVzdGFydAo=
        filesystem: root
        mode: 0644
        path: /etc/mco-master-noop-restart.txt

Reinicializar nós de trabalho

Crie o arquivo de reinicialização de trabalho. Este exemplo chama o arquivo worker-restarts.yml e o aplica.

[user@bastion ~]$ vim worker-restarts.yml
[user@bastion ~]$ oc apply -f worker-restarts.yml
machineconfig.machineconfiguration.openshift.io/25-machineconfig-worker-reboot created

O MCO move cargas de trabalho e reinicializa os nós um de cada vez. Depois que os trabalhadores voltarem a ficar online, seguiremos o mesmo procedimento para reinicializar os nós mestres. Você pode verificar o status dos trabalhadores consultando os nós e validando que todos estão no estado Ready.

Observação

Dependendo do tamanho da carga de trabalho do cluster, pode levar vários minutos para que cada nó seja reinicializado.

Nós de trabalho de exemplo que não estão totalmente prontos:

NAME                                  STATUS                     ROLES    AGE     VERSION
dns-docs-tm45t-master-0               Ready                      master   5h40m   v1.19.0+a5a0987
dns-docs-tm45t-master-1               Ready                      master   5h40m   v1.19.0+a5a0987
dns-docs-tm45t-master-2               Ready                      master   5h40m   v1.19.0+a5a0987
dns-docs-tm45t-worker-eastus1-8t6q8   Ready                      worker   5h35m   v1.19.0+a5a0987
dns-docs-tm45t-worker-eastus2-ln2kq   Ready,SchedulingDisabled   worker   5h34m   v1.19.0+a5a0987
dns-docs-tm45t-worker-eastus3-gg75h   Ready                      worker   5h35m   v1.19.0+a5a0987

À medida que o nó é reinicializado, você o verá mudar para o estado NotReady:

dns-docs-tm45t-worker-eastus2-ln2kq   NotReady,SchedulingDisabled   worker   5h38m   v1.19.0+a5a0987

Totalmente pronto:

[user@bastion ~]$ oc get nodes
NAME                                  STATUS   ROLES    AGE     VERSION
dns-docs-tm45t-master-0               Ready    master   5h45m   v1.19.0+a5a0987
dns-docs-tm45t-master-1               Ready    master   5h46m   v1.19.0+a5a0987
dns-docs-tm45t-master-2               Ready    master   5h46m   v1.19.0+a5a0987
dns-docs-tm45t-worker-eastus1-8t6q8   Ready    worker   5h41m   v1.19.0+a5a0987
dns-docs-tm45t-worker-eastus2-ln2kq   Ready    worker   5h40m   v1.19.0+a5a0987
dns-docs-tm45t-worker-eastus3-gg75h   Ready    worker   5h41m   v1.19.0+a5a0987

Reinicializar nós mestres

Agora, repita o mesmo processo para os nós mestres:

[user@bastion ~]$ vim master-restarts.yml
[user@bastion ~]$ oc apply -f master-restarts.yml
machineconfig.machineconfiguration.openshift.io/25-machineconfig-master-reboot created

Confirme se todos os nós retornaram ao estado Ready:

[user@bastion ~]$ oc get nodes
NAME                                  STATUS   ROLES    AGE    VERSION
dns-docs-tm45t-master-0               Ready    master   6h8m   v1.19.0+a5a0987
dns-docs-tm45t-master-1               Ready    master   6h8m   v1.19.0+a5a0987
dns-docs-tm45t-master-2               Ready    master   6h8m   v1.19.0+a5a0987
dns-docs-tm45t-worker-eastus1-8t6q8   Ready    worker   6h3m   v1.19.0+a5a0987
dns-docs-tm45t-worker-eastus2-ln2kq   Ready    worker   6h2m   v1.19.0+a5a0987
dns-docs-tm45t-worker-eastus3-gg75h   Ready    worker   6h3m   v1.19.0+a5a0987

Confirmar alterações em um nó (opcional)

Para validar o novo servidor DNS em um nó, vamos usar o pod oc debug.

[user@bastion ~]$ oc debug node/dns-docs-tm45t-worker-eastus2-ln2kq
Starting pod/dns-docs-tm45t-worker-eastus2-ln2kq-debug ...
To use host binaries, run `chroot /host`
chroot Pod IP: 10.0.2.6
If you don't see a command prompt, try pressing enter.
sh-4.4# chroot /host
sh-4.4# uptime
 18:40:16 up 1 min,  0 users,  load average: 0.82, 0.32, 0.12
sh-4.4# cat /etc/resolv.conf.dnsmasq
# Generated by NetworkManager
search reddog.microsoft.com
nameserver 192.168.0.1

Modificando o servidor DNS personalizado

O procedimento de modificação do DNS personalizado em um cluster que já usa o DNS personalizado segue o mesmo processo.

Modificar o DNS

Siga o procedimento descrito aqui para atualizar a configuração de DNS na rede virtual.

Reinicializar os nós

Em vez de criar o machineconfig, excluiremos os machineconfigs criados na primeira vez. Vamos começar com os nós de trabalho.

oc delete machineconfig 25-machineconfig-worker-reboot

A saída:

machineconfig.machineconfiguration.openshift.io "25-machineconfig-worker-reboot" deleted

Aguarde a reinicialização de todos os nós de trabalho. Isso é semelhante à reinicialização de nós de trabalho acima.

Agora, reiniciaremos os nós mestres.

oc delete machineconfig 25-machineconfig-master-reboot

A saída:

machineconfig.machineconfiguration.openshift.io "25-machineconfig-master-reboot" deleted

Aguarde até que todos os nós mestres sejam reinicializados e retornem a um estado Pronto.