DNS-Unterdomäne für eine NLB registrieren

Klassische Infrastruktur

Dieser Inhalt ist bestimmt für NLBs in klassischen Clustern. Informationen zu VPC-Clustern finden Sie unter VPC-Hostnamen für eine Lastausgleichsfunktion in einer DNS-Unterdomäne registrieren.

Nachdem Sie Netzlastausgleichsfunktionen (NLBs) konfiguriert haben, können Sie DNS-Einträge für die NLB-IPs erstellen, indem Sie Unterdomänen erstellen. Sie können auch TCP/HTTP(S)-Monitore einrichten, die den Status der NLB-IP-Adressen hinter den einzelnen Unterdomänen überprüfen.

Unterdomäne
Wenn Sie eine öffentliche NLB in einem Einzel- oder Mehrzonencluster erstellen, machen Sie Ihre App dem Internet zugänglich, indem Sie eine Unterdomäne für die NLB-IP-Adresse erstellen. Zusätzlich übernimmt IBM Cloud für Sie die Generierung und Pflege des Platzhalter-SSL-Zertifikats für die Unterdomäne. In Mehrzonenclustern können Sie eine Unterdomäne erstellen und die NLB-IP-Adresse in jeder Zone zum DNS-Eintrag dieser Unterdomäne hinzufügen. Wenn Sie beispielsweise NLBs für Ihre App in drei Zonen in der Region 'Vereinigte Staaten (Süden)' bereitgestellt haben, können Sie die Unterdomäne mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud für die drei NLB-IP-Adressen erstellen. Wenn ein Benutzer auf die Unterdomäne Ihrer App zugreift, greift der Client zufällig auf eine dieser IPs zu und die Anforderung wird an diese NLB gesendet.

Sie können derzeit keine Unterdomänen für private NLBs erstellen.

Bei der Verwendung von HTTP ist der Standardbenutzeragent für den Überwachungsauftrag NS1 HTTP Monitoring Job.

Überwachung der Statusprüfung
Aktivieren Sie Statusprüfungen für die NLB-IP-Adressen hinter einer einzelnen Unterdomäne, um festzustellen, ob sie verfügbar sind. Wenn Sie einen Monitor für Ihre Unterdomäne aktivieren, wird damit die NLB-IP überwacht und die Ergebnisse der DNS-Suche werden auf Grundlage dieser Statusprüfungen aktualisiert. Wenn Ihre NLBs beispielsweise die IP-Adressen 1.1.1.1, 2.2.2.2 und 3.3.3.3 haben, gibt eine normale Operation der DNS-Suche nach Ihrer Unterdomäne alle drei IPs zurück, von denen der Client zufällig auf eine zugreift. Wenn die NLB mit der IP-Adresse 3.3.3.3 aus irgendeinem Grund nicht verfügbar ist, z. B. wegen eines Zonenfehlers, dann schlägt die Statusprüfung für diese IP fehl. Der Monitor entfernt die fehlgeschlagene IP aus der Unterdomäne und die DNS-Suche gibt nur die einwandfreien IPs 1.1.1.1 und 2.2.2.2 zurück.

Sie können alle Unterdomänen anzeigen, die für NLB-IPs in Ihrem Cluster registriert sind, indem Sie den folgenden Befehl ausführen.

ibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_ID

DNS-Mikroservice-Aktualisierungen sind asynchron und können einige Minuten dauern. Beachten Sie, dass Sie möglicherweise noch warten müssen, bis Ihre Änderungen implementiert sind, wenn Sie einen ibmcloud oc nlb-dns-Befehl ausführen und eine Bestätigungsnachricht mit dem Code 200 empfangen. Um den Status Ihrer Unterdomäne zu überprüfen, führen Sie ibmcloud oc nlb-dns ls aus und suchen Sie die Spalte Status in der Ausgabe.

NLB-IPs bei einer DNS-Unterdomäne registrieren

Machen Sie Ihre App dem öffentlichen Internet verfügbar, indem Sie eine Unterdomäne für die IP-Adresse der Netzlastausgleichsfunktion (NLB) erstellen.

Vorbereitende Schritte:

Gehen Sie wie folgt vor, um eine Unterdomäne für eine oder mehrere NLB-IP-Adressen zu erstellen:

  1. Rufen Sie die Adresse EXTERNAL-IP für Ihre NLB ab. Wenn Sie in jeder Zone eines Mehrzonenclusters eine NLB haben, die eine App zugänglich machen, rufen Sie die IPs für jede NLB ab.

    oc get svc
    

    In der folgenden Beispielausgabe lauten die externen IP-Adressen (EXTERNAL-IPs) der NLB 168.2.4.5 und 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. Registrieren Sie die IP, indem Sie eine DNS-Unterdomäne erstellen. Um mehrere IP-Adressen anzugeben, verwenden Sie mehrere --ip Optionen.

    ibmcloud oc nlb-dns create classic --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP>
    
  3. Überprüfen Sie, ob die Unterdomäne erstellt wurde.

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

    Beispielausgabe

    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. Optional: Richten Sie eine angepasste Domäne ein, die auf die von IBM bereitgestellte Unterdomäne verweist, die Sie im vorherigen Schritt erstellt haben.

    • Registrieren Sie eine benutzerdefinierte Domain in Zusammenarbeit mit Ihrem DNS-Anbieter (Domain Name Service).
    • Registrieren Sie eine benutzerdefinierte Domäne mit IBM Cloud DNS.

    Sie können auch eine benutzerdefinierte Domäne registrieren, indem Sie die service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-name in Ihrer Load Balancer-Konfiguration verwenden.

  5. Definieren Sie einen Aliasnamen für Ihre Clusterdomäne, indem Sie die von IBM bereitgestellte Unterdomäne als kanonischen Namensdatensatz (CNAME) angeben.

  6. Geben Sie in einem Web-Browser die URL ein, um über die von Ihnen erstellte Unterdomäne auf Ihre App zuzugreifen.

Als Nächstes können Sie Statusprüfungen für eine Unterdomäne durch Erstellen eines Statusmonitors aktivieren.

Informationen zum Unterdomänenformat

Unterdomänen für NLBs folgen dem Format <cluster_name>-<globally_unique_account_HASH>-0001.<region>.containers.appdomain.cloud.

Zum Beispiel kann eine Unterdomäne, die Sie für eine NLB erstellen, etwa folgendermaßen aussehen: mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud. In der folgenden Tabelle sind die einzelnen Komponenten der Unterdomäne beschrieben.

Erläuterungen zum NLB-Unterdomänenformat
NLB-Unterdomänenkomponente Beschreibung
* Der Platzhalter für die Unterdomäne ist standardmäßig für Ihren Cluster registriert.
<cluster_name>

Der Name Ihres Clusters. - Wenn der Clustername 26 Zeichen oder weniger umfasst und der Clustername in dieser Region eindeutig ist, ist der gesamte Clustername eingeschlossen und wird nicht geändert: myclustername.

  • Wenn der Clustername 26 Zeichen oder weniger umfasst und ein gleichnamiger Cluster in dieser Region vorhanden ist, wird der gesamte Clustername eingeschlossen und ein Gedankenstrich mit sechs zufälligen Zeichen hinzugefügt: myclustername-ABC123.
  • Wenn der Clustername 26 Zeichen oder mehr umfasst und der Clustername in dieser Region eindeutig ist, werden nur die ersten 24 Zeichen des Clusternamens verwendet: myveryverylongclusternam.
  • Wenn der Clustername 26 Zeichen oder mehr umfasst und ein gleichnamiger Cluster in dieser Region vorhanden ist, werden nur die ersten 17 Zeichen des Clusternamens verwendet und ein Gedankenstrich mit sechs zufälligen Zeichen hinzugefügt: myveryverylongclu-ABC123.
<globally_unique_account_HASH> Ein global eindeutiger Hash wird für Ihr IBM Cloud-Konto erstellt. Alle Unterdomänen, die Sie für NLBs in Clustern in Ihrem Konto erstellen, verwenden diesen global eindeutigen Hash.
0001 Fungiert als Zähler für jede Unterdomäne, die erstellt wird
<region> Die Region, in der der Cluster erstellt wird.
containers.appdomain.cloud Die Unterdomäne für Red Hat OpenShift on IBM Cloud-Unterdomänen.

Statusprüfungen für eine Unterdomäne durch Erstellen eines Statusprüfmonitors aktivieren

Aktivieren Sie Statusprüfungen für die NLB-IP-Adressen hinter einer einzelnen Unterdomäne, um festzustellen, ob sie verfügbar sind.

Wenn Sie Calico pre-DNAT-Netzwerkrichtlinien, VPC-Sicherheitsgruppen, VPC-Zugriffskontrolllisten(ACLs) oder eine andere benutzerdefinierte Firewall-Lösung verwenden, um eingehenden Datenverkehr zu Ingress- oder Router-Diensten zu blockieren, müssen Sie eingehenden Datenverkehr von den Endpunkten für die Zustandsüberwachung zulassen. Weitere Informationen finden Sie in der Dokumentation über das Zulassen von eingehendem Netzwerkverkehr für die Überwachung der Ingress-Subdomäne.

Bevor Sie beginnen, registrieren Sie NLB-IPs bei einer DNS-Unterdomäne.

  1. Rufen Sie den Namen Ihre Unterdomäne ab. Beachten Sie in der Ausgabe, dass der Host den Monitor-Status Unconfigured aufweist.

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

    Beispielausgabe

    Hostname                                                                                   Status         Type    Port   Path
    mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud        Unconfigured   N/A     0      N/A
    
  2. Erstellen Sie einen Statusprüfmonitor für die Unterdomäne. Wenn Sie keinen Konfigurationsparameter einschließen, wird der Standardwert verwendet.

    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>
    Erforderlich: Der Name oder die ID des Clusters, in dem die Unterdomäne registriert ist.
    --nlb-host <host_name>
    Erforderlich: Die Unterdomäne, für die ein Statusprüfmonitor aktiviert werden soll.
    --enable
    Fügen Sie diese Option hinzu, um einen neuen Zustandsüberwachungsmonitor für eine Subdomain zu aktivieren.
    --type <type>
    Das für die Statusprüfung zu verwendende Protokoll: HTTP, HTTPS oder TCP. Standardwert: HTTP.
    --path <path>
    Wenn type auf HTTPS festgelegt ist: Der Endpunktpfad für die Statusprüfung. Standardwert: /
    --timeout <timeout>
    Das Zeitlimit in Sekunden, bevor die IP-Adresse als nicht erreichbar eingestuft wird. Die Statusprüfung wartet die im Parameter interval angegebene Anzahl von Sekunden, bevor erneut versucht wird, die IP zu erreichen. Der Wert muss eine ganze Zahl im Bereich von 1 bis 60 sein. Standardwert:5
    --interval <interval>
    Das Intervall (in Sekunden) zwischen den einzelnen Statusprüfungen. Kurze Intervalle können die Failover-Zeit verbessern, erhöhen allerdings die Auslastung der IPs. Der Wert muss eine ganze Zahl im Bereich von 60 bis 300 sein. Standardwert: 60.
    --port <port>
    Die Portnummer, zu der für die Zustandsprüfung eine Verbindung hergestellt werden soll. Wenn type auf TCP gesetzt ist, ist dieser Parameter erforderlich. Wenn type auf HTTP oder HTTPS gesetzt ist, definieren Sie den Port nur dann, wenn Sie einen anderen Port als Port 80 für HTTP bzw. 443 für HTTPS verwenden. Standardwert für TCP: 0. Standardwert für HTTP: 80. Standardwert für HTTPS: 443.
    --header <header>
    Erforderlich, wenn oder HTTP type ist HTTPS: Die Request-Header für den Health-Check unter HTTP sind auf den Host-Header beschränkt. Dieses Flag gilt nur für den Typ HTTP oder HTTPS. Dieses Flag akzeptiert Werte im folgenden Format: --header Header-Name=value. Wenn Sie einen Monitor aktualisieren, werden die vorhandenen Header durch die von Ihnen angegebenen ersetzt. Um alle vorhandenen Header zu löschen, geben Sie das Flag mit einem leeren Wert an --header "".

    Beispielbefehl

    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. Überprüfen Sie, ob der Statusprüfmonitor mit den korrekten Einstellungen konfiguriert ist.

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

    Beispielausgabe

    Status:           enabled
    Type:             https
    Method:           GET
    Path:             /alive
    Expected Codes:   2xx
    Port:             443
    Timeout:          5
    Interval:         60
    Headers:
    Host:      example.com
    
  4. Überprüfen Sie den Status der Statusprüfung für Ihre Unterdomäne.

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

    Beispielausgabe

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

IPs- und Monitore aktualisieren und von Unterdomänen entfernen

Sie können NLB-IP-Adressen zu Unterdomänen, die Sie generiert haben, hinzufügen und aus diesen entfernen. Sie können bei Bedarf auch Statusprüfmonitore für Unterdomänen inaktivieren und aktivieren.

NLB-IPs

Wenn Sie später weitere NLBs in anderen Zonen Ihres Clusters hinzufügen, um dieselbe App zugänglich zu machen, können Sie die NLB-IPs der vorhandenen Unterdomäne hinzufügen.

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

Sie können auch IP-Adressen von NLBs entfernen, die nicht mehr bei einer Unterdomäne registriert sein sollen. Beachten Sie, dass Sie den folgenden Befehl für jede IP-Adresse ausführen müssen, die Sie entfernen möchten. Wenn Sie alle IPs für eine Unterdomäne entfernen, ist die Unterdomäne weiterhin vorhanden, es sind ihr jedoch keine IPs zugeordnet.

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

Überwachungen der Statusprüfung

Wenn Sie die Konfiguration Ihres Statusprüfmonitors ändern müssen, können Sie einzelne Einstellungen ändern. Geben Sie nur die Optionen für die Einstellungen an, die Sie ändern möchten.

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>

Sie können den Statusprüfmonitor für eine Unterdomäne jederzeit inaktivieren, indem Sie den folgenden Befehl ausführen:

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

Führen Sie den folgenden Befehl aus, um die Überwachung einer Unterdomäne erneut zu aktivieren:

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