Registrazione di un dominio secondario DNS per un NLB

Infrastrutture classiche

Questo contenuto riguarda specificatamente gli NLB nei cluster classici. Per i cluster VPC, vedi Registrazione di un nome host del programma di bilanciamento del carico VPC con un dominio secondario DNS.

Dopo aver configurato gli NLB (network load balancer), puoi creare le voci DNS per gli IP NLB creando domini secondari. Puoi anche configurare i monitoraggi TCP/HTTP(S) per controllare l'integrità degli indirizzi IP NLB dietro ciascun dominio secondario.

Dominio secondario
Quando crei un NLB pubblico in un cluster a zona singola o multizona, puoi esporre la tua applicazione a Internet creando un dominio secondario per l'indirizzo IP NLB. Inoltre, IBM Cloud si occupa di generare e gestire il certificato SSL jolly per il dominio secondario per tuo conto. Nei cluster multizona, puoi creare un dominio secondario e aggiungere l'indirizzo IP NLB in ciascuna zona a quella voce DNS del dominio secondario. Ad esempio, se hai distribuito gli NLB per la tua applicazione in tre zone negli Stati Uniti Sud, puoi creare il dominio secondario mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud per i tre indirizzi IP NLB. Quando un utente accede al dominio secondario della tua applicazione, il client accede a uno di questi IP a caso e la richiesta viene inviata a tale NLB.

Al momento non è possibile creare sottodomini per gli NLB privati.

Quando si utilizza il monitoraggio HTTP, l'agente utente predefinito per il lavoro di monitoraggio è NS1 HTTP Monitoring Job.

Monitoraggio del controllo di integrità
Abilita i controlli di integrità sugli indirizzi IP NLB dietro un singolo dominio secondario per determinare se sono disponibili o meno. Quando abiliti un monitoraggio per il tuo dominio secondario, esso controlla lo stato di integrità di ciascun IP NLB e mantiene aggiornati i risultati della ricerca DNS sulla base dei controlli di integrità effettuati. Ad esempio, se i tuoi NLB hanno gli indirizzi IP 1.1.1.1, 2.2.2.2 e 3.3.3.3, una normale operazione di ricerca DNS del tuo dominio secondario restituisce tutti e 3 gli IP; il client accede a uno di essi in modo casuale. Se l'NLB con indirizzo IP 3.3.3.3 diventa per un qualsiasi motivo non disponibile, ad esempio a causa di un malfunzionamento di zona, il controllo dell'integrità per tale IP non riesce, il monitoraggio rimuove l'IP non riuscito dal dominio secondario e la ricerca DNS restituisce solo gli IP 1.1.1.1 e 2.2.2.2 integri.

Puoi visualizzare tutti i domini secondari registrati per gli IP NLB nel tuo cluster eseguendo il seguente comando.

ibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_ID

Gli aggiornamenti del microservizio DNS sono asincroni e potrebbero richiedere diversi minuti per essere applicati. Notare che se si esegue un comando ibmcloud oc nlb-dns e si riceve un messaggio di conferma 200, potrebbe essere ancora necessario attendere l'implementazione delle modifiche. Per controllare lo stato del dominio secondario, eseguire ibmcloud oc nlb-dns ls e trovare la colonna Status nell'output.

Registrazione di IP NLB con un dominio secondario DNS

Esponi la tua applicazione all'Internet pubblico creando un dominio secondario per l'indirizzo IP NLB (network load balancer).

Prima di cominciare:

Per creare un dominio secondario per uno o più indirizzi IP NLB:

  1. Ottieni l'indirizzo EXTERNAL-IP per il tuo NLB. Se hai NLB in ciascuna zona di un cluster multizona e tali NLB espongono una sola applicazione, ottieni gli IP per ciascun NLB.

    oc get svc
    

    Nel seguente output di esempio, gli EXTERNAL-IP dell'NLB sono 168.2.4.5 e 88.2.4.5.

    NAME             TYPE           CLUSTER-IP       EXTERNAL-IP       PORT(S)                AGE
    lb-myapp-dal10   LoadBalancer   172.21.xxx.xxx   168.2.4.5         1883:30303/TCP         6d
    lb-myapp-dal12   LoadBalancer   172.21.xxx.xxx   88.2.4.5          1883:31303/TCP         6d
    
  2. Registra l'IP creando un dominio secondario DNS. Per specificare più indirizzi IP, utilizzare più opzioni " --ip ".

    ibmcloud oc nlb-dns create classic --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP>
    
  3. Verifica che il dominio secondario sia stato creato.

    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_id>
    

    Output di esempio

    Hostname                                                                                IP(s)              Health Monitor   SSL Cert Status           SSL Cert Secret Name
    mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud     ["168.2.4.5"]      None             created                   <certificate>
    
  4. Facoltativo: configura un dominio personalizzato in modo che punti al dominio secondario fornito da IBM che hai creato nel passo precedente.

    • Registra un dominio personalizzato rivolgendoti al tuo provider di servizi DNS (Domain Name Service).
    • Registrare un dominio personalizzato utilizzando IBM Cloud DNS.

    È anche possibile registrare un dominio personalizzato utilizzando l'annotazione service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-name nella configurazione del Load Balancer.

  5. Definisci un alias per il tuo dominio personalizzato specificando il dominio secondario fornito da IBM come record di nome canonico (CNAME).

  6. In un browser Web, immetti l'URL per accedere alla tua applicazione attraverso il dominio secondario che hai creato.

In seguito, puoi abilitare i controlli di integrità sul dominio secondario creando un monitoraggio dell'integrità.

Descrizione del formato del dominio secondario

I sottodomini per gli NLB seguono il formato <cluster_name>-<globally_unique_account_HASH>-0001.<region>.containers.appdomain.cloud.

Ad esempio, un dominio secondario che crei per un NLB potrebbe essere simile a mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud. La seguente tabella descrive ciascun componente del dominio secondario.

Descrizione del formato del dominio secondario NLB
Componente dominio secondario NLB Descrizione
* Il carattere jolly per il dominio secondario viene registrato per impostazione predefinita per il tuo cluster.
<cluster_name>

Il nome del cluster. - Se il nome cluster ha una lunghezza massima di 26 caratteri e il nome cluster è univoco in questa regione, l'intero nome cluster viene incluso e non viene modificato: myclustername.

  • Se il nome cluster ha una lunghezza massima di 26 caratteri e in questa regione è presente un cluster esistente con lo stesso nome, viene incluso l'intero nome cluster e viene aggiunto un trattino con sei caratteri casuali: myclustername-ABC123.
  • Se il nome cluster ha una lunghezza massima di 26 caratteri e il nome cluster è univoco in questa regione, vengono utilizzati solo i primi 24 caratteri del nome cluster: myveryverylongclusternam.
  • Se il nome cluster è maggiore o uguale a 26 caratteri e esiste un cluster con lo stesso nome in questa regione, vengono utilizzati solo i primi 17 caratteri del nome cluster e viene aggiunto un trattino con sei caratteri casuali: myveryverylongclu-ABC123.
<globally_unique_account_HASH> Viene creato un HASH univoco a livello globale per il tuo account IBM Cloud, Tutti i domini secondari che crei per gli NLB nei cluster nel tuo account utilizzano questo HASH univoco a livello globale.
0001 Agisce come contatore per ogni sottodominio creato.
<region> La regione in cui viene creato il cluster.
containers.appdomain.cloud Il dominio secondario per i domini secondari Red Hat OpenShift on IBM Cloud.

Abilita i controlli di integrità su un dominio secondario creando un monitoraggio dell'integrità

Abilita i controlli di integrità sugli indirizzi IP NLB dietro un singolo dominio secondario per determinare se sono disponibili o meno.

Se si utilizzano i criteri di rete pre-DNAT di Calico, i gruppi di sicurezza VPC, gli elenchi di controllo degli accessi(ACL)VPC o un'altra soluzione firewall personalizzata per bloccare il traffico in ingresso ai servizi di Ingress o router, è necessario consentire il traffico in ingresso dagli endpoint di monitoraggio della salute. Per ulteriori informazioni, consultare la documentazione relativa all'autorizzazione del traffico di rete in entrata per il monitoraggio del sottodominio Ingress.

Prima di iniziare, registra gli IP NLB con un dominio secondario DNS.

  1. Richiama il nome del tuo dominio secondario. Nell'output, osserva che lo Stato di monitoraggio dell'host è Unconfigured.

    ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>
    

    Output di esempio

    Hostname                                                                                   Status         Type    Port   Path
    mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud        Unconfigured   N/A     0      N/A
    
  2. Crea un monitoraggio del controllo di integrità per il dominio secondario. Se non si specifica un parametro di configurazione, viene utilizzato il valore predefinito.

    ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --enable --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>
    
    -c, --cluster <cluster_name_or_ID>
    Obbligatorio: il nome o l'ID del cluster in cui è registrato il dominio secondario.
    --nlb-host <host_name>
    Obbligatorio: il dominio secondario per cui abilitare un monitoraggio del controllo dell'integrità.
    --enable
    Includere questa opzione per abilitare un nuovo monitor di integrità per un sottodominio.
    --type <type>
    Il protocollo da utilizzare per il controllo di integrità: HTTP, HTTPS o TCP. Impostazione predefinita: HTTP.
    --path <path>
    Quando type è HTTPS: il percorso dell'endpoint su cui eseguire il controllo di integrità. Predefinito: /
    --timeout <timeout>
    Il timeout, in secondi, prima che l'IP venga considerato irraggiungibile. Il controllo di integrità attende il numero di secondi specificato nel parametro interval prima di provare nuovamente a raggiungere l'IP. Il valore deve essere un numero intero compreso tra 1 e 60. Predefinito: 5
    --interval <interval>
    Intervallo, in secondi, tra ogni controllo di integrità. L'uso di intervalli brevi potrebbe diminuire il tempo di failover, ma aumentare il carico sugli IP. Il valore deve essere un numero intero compreso tra 60 e 300. Impostazione predefinita: 60.
    --port <port>
    Il numero di porta a cui connettersi per il controllo di integrità. Quando type è TCP, questo parametro è obbligatorio. Quando type è HTTP o HTTPS, definire la porta solo se si utilizza una porta diversa dalla 80 per HTTP o dalla 443 per HTTPS. Impostazione predefinita per TCP: 0. Predefinito per HTTP: 80. Impostazione predefinita per HTTPS: 443.
    --header <header>
    Obbligatorio quando type è HTTP o HTTPS: HTTP le intestazioni di richiesta per il controllo di integrità sono limitate all'intestazione Host. Questo flag è valido solo per i tipi HTTP o HTTPS. Questo flag accetta valori nel seguente formato: --header Header-Name=value. Quando aggiorni un monitoraggio, le intestazioni esistenti vengono sostituite da quelle che hai specificato. Per eliminare tutte le intestazioni esistenti, specificare il flag con un valore vuoto --header "".

    Comando di esempio

    ibmcloud oc nlb-dns monitor configure --cluster mycluster --nlb-host mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud --enable --type HTTPS --path /alive --timeout 5 --interval 60 --header Host=example.com
    
  3. Verifica che il monitoraggio del controllo di integrità sia configurato con le impostazioni corrette.

    ibmcloud oc nlb-dns monitor get --cluster <cluster_name_or_id> --nlb-host <host_name>
    

    Output di esempio

    Status:           enabled
    Type:             https
    Method:           GET
    Path:             /alive
    Expected Codes:   2xx
    Port:             443
    Timeout:          5
    Interval:         60
    Headers:
    Host:      example.com
    
  4. Visualizzare lo stato del controllo di integrità del dominio secondario.

    ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>
    

    Output di esempio

    Hostname                                                                                Status      Type    Port   Path
    mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud     enabled     https   443    /alive
    

Aggiornamento e rimozione di IP e monitoraggi dai domini secondari

Puoi aggiungere e rimuovere gli indirizzi IP NLB dai domini secondari che hai generato. Puoi anche disabilitare e abilitare i monitoraggi del controllo di integrità per i domini secondari in base alle necessità.

IP NLB

Se successivamente aggiungi ulteriori NLB in altre zone del tuo cluster per esporre la stessa applicazione, puoi aggiungere gli IP NLB al dominio secondario esistente.

ibmcloud oc nlb-dns add --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP> ... --nlb-host <host_name>

Puoi anche rimuovere gli indirizzi IP degli NLB che non desideri più siano registrati con un dominio secondario. Nota che devi eseguire il seguente comando per ciascun indirizzo IP che desideri rimuovere. Se rimuovi tutti gli IP da un dominio secondario, il dominio secondario esiste ancora, ma non è associato ad alcun IP.

ibmcloud oc nlb-dns rm classic --cluster <cluster_name_or_id> --ip <ip> --nlb-host <host_name>

Controlli del controllo di integrità

Se devi modificare la configurazione del tuo monitoraggio dell'integrità, puoi modificare le impostazioni specifiche. Seleziona solo le opzioni relative alle impostazioni che desideri modificare.

ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>

Puoi disabilitare il monitoraggio del controllo di integrità per un dominio secondario in qualsiasi momento, eseguendo il seguente comando:

ibmcloud oc nlb-dns monitor disable --cluster <cluster_name_or_id> --nlb-host <host_name>

Per riabilitare un monitoraggio per un dominio secondario, esegui il seguente comando:

ibmcloud oc nlb-dns monitor enable --cluster <cluster_name_or_id> --nlb-host <host_name>