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:
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.
- Modificar a definição de configuração dos Servidores DNS da Rede Virtual.
- 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.
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.
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.
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.yml
e 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 machineconfig
s 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.