Condividi tramite


Configurare un resolver DNS personalizzato per il cluster Azure Red Hat OpenShift (ARO)

Questo articolo fornisce i dettagli necessari che consentono di configurare il cluster Azure Red Hat OpenShift (ARO) per l'uso di un server DNS personalizzato. Contiene i requisiti del cluster per una distribuzione ARO di base.

Operazioni preliminari

Questo articolo presuppone che si stia creando un nuovo cluster o che sia stato applicato un cluster esistente con gli aggiornamenti più recenti. Se è necessario un cluster ARO, vedere la guida introduttiva ARO per un cluster pubblico o l'esercitazionesul cluster privato per un cluster privato. Questi passaggi per configurare il cluster per l'uso di un server DNS personalizzato sono gli stessi per i cluster privati e pubblici.

Verificare la compatibilità del cluster con DNS personalizzato

Verificare che il cluster sia idoneo a supportare questa funzionalità convalidando l'esistenza di 99-master-aro-dns e 99-worker-aro-dnsmachineconfigs.

oc get machineconfig

Se i risultati del comando precedente includono i computerconfig seguenti, il cluster è idoneo per il supporto DNS personalizzato.

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

Panoramica dell'architettura DNS

Poiché ogni nodo del cluster Azure Red Hat OpenShift attiva e aggiunge la rete, DHCP configura la macchina virtuale con informazioni quali l'indirizzo IP e il server DNS da usare.

Di seguito è riportata la panoramica del flusso di processo di come viene ottenuta la configurazione:

DNS

Un importante compromesso dell'uso del proprio server DNS anziché del server DNS predefinito nella rete virtuale è che si perde la configurazione fornita dal server DNS. I nomi delle macchine virtuali non verranno più risolti tramite DNS nella rete.

Panoramica del processo di aggiornamento

La configurazione di un server DNS personalizzato per il cluster viene suddivisa in due passaggi.

  1. Modifica dell'impostazione di configurazione dei server DNS Rete virtuale.
  2. Riavvio dei nodi nel cluster per apportare modifiche.

Configurare un server DNS personalizzato

I passaggi seguenti possono essere eseguiti anche tramite la riga di comando, ma questa documentazione illustra l'uso dell'interfaccia Web del portale.

Aggiornare la configurazione DNS nella rete virtuale

Accedere al portale di Azure e passare alla rete virtuale desiderata da aggiornare. Selezionare Server DNS dall'elenco delle impostazioni delle reti virtuali.

Select DNS

Dopo aver visualizzato la schermata di configurazione DNS, selezionare Personalizzato nella configurazione del pulsante radiale. Immettere gli indirizzi IP per i server DNS.

Importante

Se si sceglie di specificare un server DNS personalizzato, non sarà più possibile risolvere i nomi dei nodi nella rete virtuale tramite DNS. I nodi saranno raggiungibili solo tramite l'indirizzo IP.

Specify Custom DNS Servers

Seleziona Salva.

Nota

Come illustrato nell'interfaccia del portale, è necessario riavviare tutte le macchine virtuali affinché le modifiche siano presenti.

Si dovrebbe ricevere una notifica che informa che l'aggiornamento è riuscito.

Confirm DNS Changes

Riavviare normalmente il cluster

Per informazioni dettagliate su come ottenere un kubeconfig, vedere questa esercitazione per informazioni dettagliate su come ottenere un kubeconfig.

I frammenti di codice seguenti creano noop machineconfigper i nodi master e di lavoro. In questo modo è possibile avviare riavvii in sequenza per i nodi di lavoro o master. Per altre informazioni sull'operatore mco (Machine Config Operator), vedere il codice sorgente o la documentazione di OpenShift per MCO .

Definizioni machineconfig

I riavvii del ruolo di lavoro:

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

Riavvii master:

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

Riavviare i nodi di lavoro

Creare il file di riavvio del ruolo di lavoro, in questo esempio viene chiamato il file worker-restarts.ymle applicarlo.

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

L'mco sposta i carichi di lavoro e quindi riavvia ogni nodo uno alla volta. Una volta che i ruoli di lavoro sono tornati online, si seguirà la stessa procedura per riavviare i nodi master. È possibile verificare lo stato dei ruoli di lavoro eseguendo una query sui nodi e verificare che siano tutti nello Ready stato.

Nota

A seconda delle dimensioni del carico di lavoro del cluster, il riavvio di ogni nodo può richiedere alcuni minuti.

Nodi di lavoro di esempio non completamente pronti:

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

Quando il nodo viene riavviato, verrà visualizzato lo stato NotReady:

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

Completamente 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

Riavviare i nodi master

Ripetere ora lo stesso processo per i nodi master:

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

Verificare che tutti i nodi siano tornati allo Ready stato:

[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

Confermare le modifiche in un nodo (facoltativo)

Per convalidare il nuovo server DNS in un nodo, si userà il 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

Modifica del server DNS personalizzato

La procedura per modificare il DNS personalizzato in un cluster con DNS personalizzato sul posto segue lo stesso processo.

Modificare IL DNS

Seguire la procedura descritta qui per aggiornare la configurazione DNS nella rete virtuale.

Riavviare i nodi

Invece di creare machineconfig, si eliminerà invece l'elemento machineconfigcreato per la prima volta. Si inizierà con i nodi di lavoro.

oc delete machineconfig 25-machineconfig-worker-reboot

L'output è:

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

Attendere il riavvio di tutti i nodi di lavoro. Questo comportamento è simile al riavvio dei nodi di lavoro precedenti.

A questo punto verranno riavviati i nodi master.

oc delete machineconfig 25-machineconfig-master-reboot

L'output è:

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

Attendere il riavvio di tutti i nodi master e tornare a uno stato Pronto.