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-dns
machineconfigs
.
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:
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.
- Modifica dell'impostazione di configurazione dei server DNS Rete virtuale.
- 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.
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.
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.
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 machineconfig
per 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.yml
e 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 machineconfig
creato 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.