Partilhar via


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

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

Antes de começar

Este artigo pressupõe que você esteja criando um novo cluster ou tenha um cluster 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. Estas etapas para configurar seu cluster para usar um servidor DNS personalizado são as mesmas para clusters privados e públicos.

Confirmar a compatibilidade do cluster com DNS personalizado

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

oc get machineconfig

Se os resultados do comando acima incluírem as seguintes machineconfigs, seu cluster estará qualificado para suporte 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 DNS

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

Abaixo está a visão geral do fluxo de processo de como a configuração é obtida:

DNS

Uma compensação importante de usar seu próprio servidor DNS em vez do servidor DNS padrão na rede virtual é que você perde a configuração que o servidor DNS forneceu. Os nomes das máquinas virtuais 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. Modificar a definição de configuração dos Servidores DNS da Rede Virtual.
  2. Reiniciando nós no cluster para fazer alterações.

Configurar um servidor DNS personalizado

As etapas a seguir também podem ser executadas através da linha de comando, mas esta documentação será guiada usando a interface da Web do portal.

Atualizar a configuração de DNS na rede virtual

Faça logon no portal do Azure e navegue até a rede virtual desejada que deseja atualizar. Selecione Servidores DNS na lista de configurações de redes virtuais.

Selecione DNS

Quando estiver na tela de configuração de DNS, selecione Personalizar na configuração do botão radial. Introduza os endereços IP dos seus servidores DNS.

Importante

Se você optar por especificar um servidor DNS personalizado, não poderá mais resolver nomes de nó na rede virtual via DNS. Os nós só serão acessíveis através do endereço IP.

Especificar servidores DNS personalizados

Selecione Guardar.

Nota

Conforme mostrado na interface do portal, você deve reinicializar todas as máquinas virtuais para que as alterações estejam em vigor.

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

Confirmar alterações de DNS

Reinicialize o cluster com elegância

Essas etapas exigem ter um kubeconfig válido para seu cluster, consulte este tutorial para obter detalhes sobre como obter um kubeconfig.

Os trechos de código a seguir criam noop machineconfig's para nós mestre e trabalhador. Isso permite que você inicie reinicializações contínuas para os nós de trabalho ou mestre. Para obter mais informações sobre o Machine Config Operator (MCO), consulte o código-fonte ou os documentos do OpenShift para MCO.

Definições de MachineConfig

Reinício do trabalhador:

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 do 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 do trabalhador, este exemplo chama o arquivo worker-restarts.ymle aplique-o.

[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, em seguida, reinicializa cada nó um de cada vez. Assim que os trabalhadores voltarem a ficar online, seguiremos o mesmo procedimento para reiniciar os nós mestres. Você pode verificar o status dos trabalhadores consultando os nós e validar que todos estão no Ready estado.

Nota

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

Exemplo de nós de trabalho nã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 Ready estado:

[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ó, usaremos o oc debug pod.

[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 para modificar o DNS personalizado em um cluster que já tem DNS personalizado em vigor segue o mesmo processo.

Modificar DNS

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

Reiniciar os nós

Em vez de criar o machineconfig, excluiremos o machineconfigs que criamos pela primeira vez. Começaremos 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 dos nós de trabalho acima.

Agora vamos reiniciar 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 ao estado Pronto.