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:
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.
- A modificação da definição de configuração de servidores DNS da rede virtual.
- 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.
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.
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.
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 machineconfig
s 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 machineconfig
s 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.