Application Load Balancer for VPC-Instanz einrichten
Sie richten einen Kubernetes-Service vom Typ LoadBalancer (Lastausgleichsfunktion) in Ihrem Cluster ein, um Ihre App im öffentlichen oder privaten Netz zugänglich zu machen. Wenn Sie Ihre App zugänglich machen, wird eine Application
Load Balancer for VPC-Instanz (VPC-ALB), die Anforderungen an Ihre App weiterleitet, automatisch in Ihrer VPC außerhalb Ihres Clusters erstellt. Anschließend können Sie die VPC-ALB optional mit einem DNS-Eintrag und einem TLS-Zertifikat registrieren.
VPC-ALBs unterstützen ausschließlich das „ TCP “-Protokoll.
Verwechseln Sie die VPC-Lastausgleichsfunktion für Anwendungen nicht mit Ingress-Lastausgleichsfunktionen für Anwendungen von (Application Load Balancers, ALBs) von Red Hat OpenShift on IBM Cloud. Application Load Balancers for VPC-Instanzen (VPC-ALBs)
werden außerhalb Ihres Clusters in Ihrer VPC ausgeführt und werden von Kubernetes-Services vom Typ LoadBalancer konfiguriert, die Sie erstellen. Ingress-Lastausgleichsfunktionen für Anwendungen sind Ingress-Controller, die auf Workerknoten in Ihrem Cluster ausgeführt werden.
Öffentliche oder private VPC-ALB einrichten
Vorbereitende Schritte
- Stellen Sie sicher, dass Sie über die IAM-Zugriffsrolle Writer oder Manager IBM Cloud für den Namespace verfügen, in dem Sie den Dienst
LoadBalancerKubernetes für den VPC-ALB bereitstellen. - Rufen Sie Ihren Red Hat OpenShift-Cluster auf.
- Installieren Sie zum Anzeigen von VPC-ALBs das Plug-in
infrastructure-service. Das Präfix für die Ausführung von Befehlen istibmcloud is.ibmcloud plugin install infrastructure-service
Damit Ihre App öffentliche oder private Anfragen empfangen kann:
-
Stellen Sie die App im Cluster bereit. Stellen Sie sicher, dass Sie im Metadatenabschnitt der Konfigurationsdatei für die Bereitstellung eine Bezeichnung hinzufügen. Mit dieser angepassten Bezeichnung werden alle Pods gekennzeichnet, in denen Ihre App ausgeführt wird und die in den Lastausgleich einbezogen werden sollen.
-
Erstellen Sie eine YAML-Konfigurationsdatei für Ihren Kubernetes Service vom Typ
LoadBalancer. In der YAML-Datei geben Sie dieservice.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type-Anmerkung entweder als"public"oder"private"an. Der Abschnittannotationsin der Beispieldatei enthält nur einige verfügbare Anmerkungen. Eine vollständige Liste der erforderlichen und optionalen VPC ALB-Anmerkungen finden Sie unter Anmerkungen und Spezifikationen.Damit Ihr VPC ALB leicht identifizierbar ist, sollten Sie den Dienst im Format
<app_name>-vpc-alb-<VPC_zone>benennen.apiVersion: v1 kind: Service metadata: name: myloadbalancer annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "`<app_name>-vpc-alb-<VPC_zone>`" service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol" service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "<public_or_private>" service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector: "<key>=<value>" spec: type: LoadBalancer selector: <selector_key>: <selector_value> ports: - name: http protocol: TCP port: 8080 targetPort: 8080 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. - name: https protocol: TCP port: 443 targetPort: 443 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. externalTrafficPolicy: Local # Specify Local or Cluster. -
Erstellen Sie den Kubernetes-Service vom Typ
LoadBalancerin Ihrem Cluster.oc apply -f myloadbalancer.yaml -n <namespace> -
Überprüfen Sie, ob der Kubernetes Service vom Typ
LoadBalancerin Ihrem Cluster erfolgreich erstellt wurde. Wenn der Service erstellt wurde, enthält das Feld LoadBalancer Ingress einen Hostnamen, der von der VPC-ALB zugeordnet wird.
Die Bereitstellung der VPC-ALB in Ihrer VPC dauert einige Minuten. Sie können erst unter Verwendung des Hostnamens Ihres Kubernetes-LoadBalancer-Service auf Ihre App zugreifen, wenn die VPC-ALB vollständig bereitgestellt
wurde.
```sh {: pre}
oc describe svc myloadbalancer -n <namespace>
```
CLI-Beispielausgabe für einen öffentlichen `LoadBalancer`-Service:
```sh {: screen}
NAME: myvpcalb
Namespace: default
Labels: <none>
Annotations:
Selector: app=echo-server
Type: LoadBalancer
IP: 172.21.XX.XX
LoadBalancer Ingress: 1234abcd-us-south.lb.appdomain.cloud
Port: tcp-80 80/TCP
TargetPort: 8080/TCP
NodePort: tcp-80 30610/TCP
Endpoints: 172.17.17.133:8080,172.17.22.68:8080,172.17.34.18:8080 + 3 more...
Session Affinity: None
External Traffic Policy: Local
HealthCheck NodePort: 31438
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal EnsuringLoadBalancer 16m service-controller Ensuring load balancer
Normal EnsuredLoadBalancer 15m service-controller Ensured load balancer
Normal CloudVPCLoadBalancerNormalEvent 13m ibm-cloud-provider Event on cloud load balancer myvpcalb for service default/myvpcalb with UID 08cbacf0-2c93-4186-84b6-c4ab88a2faf9: The VPC load balancer that routes requests to this Kubernetes LoadBalancer service is currently online/active.
```
-
Überprüfen Sie, ob die VPC-ALB in Ihrer VPC erfolgreich erstellt wurde. Überprüfen Sie, ob die VPC-ALB in der Ausgabe für Operating Status den Wert
onlineund für Provision Status den Wertactiveaufweist.ibmcloud is load-balancersIn der folgenden CLI-Beispielausgabe wird die erstellte VPC-ALB mit dem Namen
kube-bsaucubd07dhl66e4tgg-1f4f408ce6d2485499bcbdec0fa2d306für den Kubernetes-Service vom TypLoadBalancerangezeigt:ID Name Family Subnets Is public Provision status Operating status Resource group r006-d044af9b-92bf-4047-8f77-a7b86efcb923 kube-bsaucubd07dhl66e4tgg-1f4f408ce6d2485499bcbdec0fa2d306 Application mysubnet-us-south-3 true active online default -
Wenn Sie einen öffentlichen
LoadBalancer-Service erstellt haben, rufen Sie den Hostnamen des Kubernetes-Service vom TypLoadBalancer(siehe Schritt 4), der von der VPC-ALB zugeordnet wird, mit Curl auf. Beispiel:curl 06496f64-us-south.lb.appdomain.cloud:8080Beispielausgabe
Hello world from hello-world-deployment-5fd7787c79-sl9hn! Your app is up and running in a cluster!Wenn Sie einen privaten
LoadBalancer-Service erstellt haben, müssen Sie mit Ihrem privaten VPC-Netz verbunden sein,, um den Hostnamen mit dem Curl-Befehl aufrufen zu können.
Löschen Sie nicht die Teilnetze, die Sie Ihrem Cluster bei der Clustererstellung oder beim Hinzufügen von Workerknoten in einer Zone zugeordnet haben. Wenn Sie ein von Ihrem Cluster verwendetes VPC-Teilnetz löschen, können bei allen Lastausgleichsfunktionen, die IP-Adressen aus dem Teilnetz verwenden, Probleme auftreten, und Sie können möglicherweise keine neuen Lastausgleichsfunktionen erstellen.
VPC-ALBs und NLBs, die nicht mit Clustern unter Kubernetes oder OpenShift verknüpft sind, können direkt über „ibmcloud is“-Befehle oder im Abschnitt „VPC-Infrastruktur“ in der Konsole aktualisiert werden. Ändern Sie zum Beispiel den Port eines Front-End-Listeners oder den Timeout-Wert für die Zustandsprüfung. Bei VPC-Load-Balancern, die mit Clustern unter Kubernetes oder OpenShift verknüpft sind, müssen alle Änderungen jedoch über Annotationen in der Ingress-Konfiguration vorgenommen werden. Der „ IBM Cloud “-Provider führt regelmäßig eine Neusynchronisierung mit allen zugehörigen VPC-ALBs und NLBs durch, um sicherzustellen, dass der aktive Load Balancer der erwarteten Konfiguration des Ingress entspricht. Wenn Sie also Änderungen an einem solchen Load Balancer direkt über die VPC vornehmen, anstatt Ingress-Annotationen zu verwenden, werden diese Änderungen rückgängig gemacht.
DNS-Datensatz und TLS-Zertifikat registrieren
Application Load Balancer for VPC (VPC ALB) stellt einen HTTP-Standardhostnamen im Format 1234abcd-<region>.lb.appdomain.cloud bereit, über den Sie auf Ihre App zugreifen können. Wenn Sie jedoch ein TLS-Zertifikat für Ihre
App-Domäne wünschen, um HTTPS zu unterstützen, können Sie für öffentliche wie auch für private VPC-ALBs eine von IBM bereitgestellte Unterdomäne erstellen oder eine eigene angepasste Domäne verwenden.
Nachdem Sie eine DNS-Unterdomäne für einen VPC-ALB-Hostnamen erstellt haben, können Sie keine nlb-dns health-monitor-Befehle zum Erstellen einer angepassten Statusprüfung verwenden. Stattdessen wird die VPC-Standardstatusprüfung
für Lastausgleichsfunktionen verwendet, die für den Standard-Hostnamen der VPC-ALB bereitgestellt wird. Weitere Informationen finden Sie in der VPC-Dokumentation.
Vorbereitende Schritte
- Richten Sie eine VPC-ALB ein. Stellen Sie sicher, dass Sie in Ihrem Kubernetes-Service vom Typ
LoadBalancer, von dem die VPC-ALB konfiguriert wird, einen HTTPS-Port definieren. - Um das TLS-Zertifikat für den Zugriff über HTTPS auf Ihre App verwenden zu können, muss Ihre Anwendung in der Lage sein, TLS-Verbindungen zu beenden.
Gehen Sie wie folgt vor, um ein Hostnamen für die VPC-ALB in einer DNS-Unterdomäne zu registrieren:
-
Rufen Sie den Hostnamen für Ihre VPC-ALB ab, indem Sie den Befehl
get svcausführen. Suchen Sie in der Ausgabe in der Spalte EXTERNAL-IP nach dem Hostnamen. Zum Beispiel1234abcd-us-south.lb.appdomain.cloud.oc get svc -o wideBeispielausgabe
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR ... webserver-lb LoadBalancer 172.21.xxx.xxx 1234abcd-us-south.lb.appdomain.cloud 8080:30532/TCP 1d run=webserver -
Erstellen Sie eine angepasste oder von IBM bereitgestellte DNS-Unterdomäne für den Hostnamen der Lastausgleichsfunktion.
-
Benutzerdefinierte Domain: Geben Sie Ihre eigene benutzerdefinierte Domain an und weisen Sie ihr einen Alias zu, indem Sie die externe IP-Adresse des Load Balancers im Format eines
1234abcd-us-south.lb.appdomain.cloudCanonical Name-Eintrags (CNAME) angeben.- Registrieren Sie in Zusammenarbeit mit Ihrem DNS-Provider (DNS = Domain Name Service) oder mit dem IBM Cloud-DNS eine angepasste Domäne.
- Definieren Sie einen Alias für Ihre benutzerdefinierte Domain, indem Sie die externe IP-Adresse des Load Balancers als Canonical Name-Eintrag (CNAME) angeben. Im folgenden Beispiel ist der Load Balancer mit der externen IP von
1234abcd-us-south.lb.appdomain.cloudunterwww.your-custom-domain.comerreichbar.
- Host/Service
- Das Präfix, über das Sie Ihre Anwendung erreichen möchten, z. B.
www. - Ressourcentyp
- Wählen Sie
CNAMEaus. - TTL
- Wählen Sie eine Zeit zum Leben.
- Wert/Ziel
- Die LoadBalancer externe IP, die Sie zuvor abgerufen haben. Zum Beispiel
1234abcd-us-south.lb.appdomain.cloud.. Beachten Sie, dass Sie bei der Verwendung von IBM Cloud DNS darauf achten, dass Sie einen Punkt am Ende eingeben.
-
Von IBMbereitgestellte Unterdomäne: Mit
nlb-dns-Befehlen können Sie eine Unterdomäne mit einem TLS-Zertifikat für den Hostnamen der VPC-ALB generieren. IBM Cloud übernimmt die Generierung und Verwaltung des TLS-Platzhalterzertifikats für die Unterdomäne für Sie.- Erstellen Sie eine DNS-Unterdomäne und ein TLS-Zertifikat.
ibmcloud oc nlb-dns create vpc-gen2 --cluster CLUSTER_NAME_OR_ID --lb-host VPC_LB_HOSTNAME --type (public|private) - Überprüfen Sie, ob die Unterdomäne erstellt wurde. Weitere Informationen finden Sie unter Informationen zum Unterdomänenformat.
Beispielausgabeibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_IDSubdomain Load Balancer Hostname Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud ["1234abcd-us-south.lb.appdomain.cloud"] None created <certificate>
- Erstellen Sie eine DNS-Unterdomäne und ein TLS-Zertifikat.
-
-
Wenn Sie eine Subdomain für einen öffentlichen VPC-ALB erstellt haben, öffnen Sie einen Webbrowser und geben Sie URL ein, um über die Subdomain auf Ihre App zuzugreifen, wie im Beispiel gezeigt
www.your-custom-domain.com. Wenn Sie eine Unterdomäne für eine private VPC-ALB erstellt haben, müssen Sie mit Ihrem privaten VPC-Netz verbunden sein, um den Zugriff auf Ihre Unterdomäne testen zu können.
Wenn Sie das TLS-Zertifikat für den Zugriff auf Ihre App über HTTPS verwenden möchten, stellen Sie sicher, dass in Ihrem Kubernetes Service vom Typ LoadBalancer ein HTTPS-Port definiert ist. Sie können
überprüfen, ob Anforderungen ordnungsgemäß über den HTTPS-Port weitergeleitet werden, indem Sie curl -v --insecure https://<domain> ausführen. Ein Verbindungsfehler weist darauf hin, dass kein HTTPS-Port für den Service
geöffnet ist. Stellen Sie außerdem sicher, dass TLS-Verbindungen von Ihrer Anwendung beendet werden können. Sie können überprüfen, ob Ihre App TLS ordnungsgemäß beendet, indem Sie curl -v https://<domain> ausführen. Ein
Zertifikatsfehler gibt an, dass Ihre App TLS-Verbindungen nicht korrekt beendet.
Registrierung eines privaten DNS-Eintrags für einen privaten VPC ALB
In Version 4.15 oder später können Sie die folgenden optionalen Anmerkungen verwenden, um einen eigenen DNS instance, der einen benutzerdefinierten DNS zone bedient, mit einem privaten VPC ALB zu verknüpfen. Hierfür
müssen beide optionalen Anmerkungen gesetzt werden. Wenn keine Angaben gemacht werden, werden DNS- A-Einträge für die Eigenschaft „ hostname “ dieses Load Balancers zur öffentlichen DNS-Zone „ lb.appdomain.cloud “ hinzugefügt.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-instance-crn: "private-dns-crn"- Die DNS-
instance, die diesem Load Balancer zugeordnet werden soll. Die angegebene Instanz kann sich in einer anderen Region oder einem anderen Konto befinden und unterliegt den IAM-Richtlinien. Mögliche Werte: 9 ≤ Länge ≤ 512 service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-zone-id: "dns-zone-id"- Die DNS-
zone, die diesem Load Balancer zugeordnet werden soll. Die angegebene Zone kann sich in einer anderen Region oder einem anderen Konto befinden, abhängig von den IAM-Richtlinien. Mögliche Werte: 1 ≤ Länge ≤ 128, Wert muss dem regulären Ausdruck [1]*[a-z0-9]$ entsprechen
Bevor Sie diese Funktion nutzen können, müssen Sie die folgenden Voraussetzungen erfüllen:
- Erstellen der DNS-Zone, die an einen Load Balancer gebunden werden kann
- Aktivieren der Dienst-zu-Dienst-Autorisierung zwischen VPC LBs und DNS Services
- Hinzufügen der VPC des Clusters zu den zulässigen Netzwerken der Zone
Detaillierte Informationen finden Sie in den Dokumenten Integration eines Application Load Balancers mit IBM Cloud DNS Services und Hinzufügen einer VPC als zugelassenes Netzwerk zur DNS-Zone.
Beispiel:
apiVersion: v1
kind: Service
metadata:
name: myloadbalancer
annotations:
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "my-load-balancer"
service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private"
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-instance-crn: "crn:v1:bluemix:public:dns-svcs:global:a/bb1b52262f7441a586f49068482f1e60:f761b566-030a-4696-8649-cc9d09889e88::"
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-zone-id: "d66662cc-aa23-4fe1-9987-858487a61f45"
spec:
type: LoadBalancer
status:
loadBalancer:
ingress:
- ip: 169.60.115.164
...
Anmerkungen und Spezifikationen
Überprüfen Sie die erforderlichen und optionalen VPC ALB-Anmerkungen und Spezifikationen.
Erforderliche Vermerke und Spezifikationen
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "alb"- Anmerkung, um eine VPC ALB zu erstellen. Wenn Sie
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-featuresnicht angeben, wird standardmäßig ein VPC ALB bereitgestellt. service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private"- (Erforderlich für private VPC ALBs) Anmerkung zur Angabe eines Dienstes, der öffentliche oder private Anfragen annimmt. Wenn diese Anmerkung nicht enthalten ist, wird eine öffentliche VPC ALB erstellt.
externalTrafficPolicy- Geben Sie
Clusteran, um eine Anfrage an einen Arbeitsknoten weiterzuleiten, der den App-Pod enthält. Dieser Arbeitsknoten kann sich in einer anderen Zone befinden. Standardmäßig ist diese Anmerkung auf gesetztCluster. - Geben Sie
Localan, um die Weiterleitung des eingehenden Datenverkehrs an einen anderen Knoten zu verhindern. Diese Option konfiguriert auch HTTP-Statusprüfungen. - Um die ursprüngliche Client-Quell-IP für VPC ALBs zu verwenden, müssen Sie das PROXY-Protokoll mit der
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol"-Anmerkung aktivieren.
Optionale Anmerkungen und Spezifikationen
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name- Geben Sie einen eindeutigen Namen an, um Ihren VPC-Loadbalancer beständig zu machen. Persistente VPC-Loadbalancer werden nicht gelöscht, wenn der Cluster, zu dem sie gehören, gelöscht wird. Weitere Informationen finden Sie unter Persistente VPC-Loadbalancer. Dieser Vermerk kann nur bei der Erstellung des Load Balancers gesetzt werden. Sie kann nicht in einem Aktualisierungsvorgang verwendet werden.
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol"- Aktivieren Sie das PROXY-Protokoll. Die Lastausgleichsfunktion übergibt Clientverbindungsinformationen, einschließlich der Client-IP-Adresse, der Proxy-Server-IP-Adresse und der beiden Portnummern, in Anforderungsheadern an Ihre Back-End-App. Dabei ist zu beachten, dass Ihre Back-End-App so konfiguriert sein muss, dass sie das PROXY-Protokoll akzeptiert. Beispielsweise können Sie eine NGINX-App so konfigurieren, dass sie das PROXY-Protokoll akzeptiert, indem Sie die folgenden Schritte ausführen.
service.kubernetes.io/ibm-load-balancer-cloud-provider-zone- Annotation zur Angabe einer VPC-Zone, der Ihr Cluster zugeordnet ist. Wenn Sie eine Zone in dieser Anmerkung angeben, laufen zwei Prozesse ab: (1) Der VPC ALB wird in demselben Subnetz in dieser Zone bereitgestellt, mit dem Ihre Arbeitsknoten
verbunden sind, und (2) nur die Arbeitsknoten in Ihrem Cluster in dieser Zone sind so konfiguriert, dass sie Verkehr vom VPC ALB empfangen. Wenn Sie die Lastausgleichsfunktion in einer bestimmten Zone platzieren möchten, müssen Sie diese
Annotation beim Erstellen der Lastausgleichsfunktion angeben. Wenn Sie diese Anmerkung später in eine andere Zone ändern, werden die Abhör- und Backend-Arbeitsknoten automatisch an die neue Zone angepasst. Wenn das Label
dedicated: edgeauf Worker-Knoten gesetzt ist und Sie diese Anmerkung angeben, werden nur Edge-Knoten in der angegebenen Zone so konfiguriert, dass sie Datenverkehr empfangen. Edge-Knoten in anderen Zonen und Nicht-Edge-Knoten in der angegebenen Zone empfangen keinen Datenverkehr von der Lastausgleichsfunktion. Führen Sie zum Anzeigen von Zonen den Befehlibmcloud ks zone ls --provider vpc-gen2aus. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets- Anmerkung zur Angabe eines oder mehrerer Subnetze, in denen der VPC-ALB-Dienst bereitgestellt wird. Ist diese Annotation angegeben, hat sie Vorrang vor der Annotation
service.kubernetes.io/ibm-load-balancer-cloud-provider-zone. Ohne diese Anmerkung werden die Subnetze, die der VPC ALB einsetzt, automatisch aktualisiert, um mit den Zonen eines Clusters übereinzustimmen, wenn der Cluster von einer Einzelzonenregion zu einer Multizonenregion oder umgekehrt aktualisiert wird. Dabei ist zu beachten, dass Sie ein Teilnetz in derselben VPC angeben können, bei dem es sich nicht um eines der Teilnetze handelt, mit dem Ihr Cluster verbunden ist. In diesem Fall kann die VPC-ALB, auch wenn sie in einem anderen Teilnetz in derselben VPC bereitgestellt wird, dennoch Datenverkehr an Ihre Workerknoten in den Clusterteilnetzen derselben Zone weiterleiten. Um Teilnetze in allen Ressourcengruppen anzuzeigen, führen Sieibmcloud oc subnets --provider vpc-gen2 --vpc-id VPC_ID --zone ZONEaus. Dieser Vermerk kann für bestehende VPC ALBs hinzugefügt oder geändert werden. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector- Anmerkung zur Festlegung eines Selektors für Worker-Knoten-Labels. Sie können bestimmte Arbeitsknoten in Ihrem Cluster für den Empfang von Datenverkehr konfigurieren, indem Sie Label-Selektorschlüssel angeben. Sie dürfen nur einen Label-Selektor
in die Anmerkung aufnehmen, und dieser Selektor muss im Format
"key=value"angegeben werden. Wird diese Annotation nicht angegeben, werden alle Workerknoten, die sich in derselben Zone wie Ihr Cluster befinden, so konfiguriert, dass sie Datenverkehr von der VPC-ALB empfangen. Diese Anmerkung hat Vorrang vor der Anmerkungservice.kubernetes.io/ibm-load-balancer-cloud-provider-zone, und alle Labelsdedicated: edgeauf Worker-Knoten werden ignoriert. Um den Datenverkehr auf eine bestimmte Zone zu beschränken, können Sie diese Anmerkung verwenden, um Arbeitsknoten in dieser Zone anzugeben. Beachten Sie, dass das Festlegen eines neuen Labels auf einem Cluster-Arbeitsknoten den Arbeitsknoten nicht automatisch für den Empfang von Datenverkehr konfiguriert; Sie müssen den VPC ALB neu erstellen oder aktualisieren, damit der neu gelabelte Arbeitsknoten Datenverkehr empfangen kann. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-protocol- Das Zustandsprüfungsprotokoll für die VPC-Load-Balancer-Ressource, die mit dem Kubernetes-Load-Balancer-Dienst verbunden ist. Verfügbare Optionen sind
http,https, odertcp. Normalerweise wird das VPC LB-Zustandsprüfungsprotokoll durch den Wert derexternalTrafficPolicy-Einstellung in der Kubernetes-Load-Balancer-Service-Spezifikation bestimmt, aber diese Anmerkung setzt diese Logik außer Kraft. Diese Anmerkung ändert nicht, wie Kubernetes, und insbesondere kube-proxy, sich in Bezug auf die verschiedenen Einstellungen vonexternalTrafficPolicyverhält. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-port- Der Port „ TCP “, der für die Zustandsprüfungen verwendet wird. Dieser Vermerk gilt nur, wenn auch
ibm-load-balancer-cloud-provider-vpc-health-check-protocolangegeben ist. - Wenn Ihr Cluster nicht Secure by Default ausführt, müssen Sie möglicherweise die folgenden Änderungen an den angewandten VPC-Sicherheitsgruppen vornehmen. Wenn Ihr Cluster mit Secure by Default arbeitet, werden diese Änderungen automatisch übernommen.
-
- Liegt der angegebene „ TCP “-Port außerhalb des Portbereichs der „ Kubernetes “-Knoten (30.000–32.767), muss die auf die Cluster-Worker-Knoten angewendete VPC-Sicherheitsgruppe angepasst werden, um eingehenden Datenverkehr auf diesem Port zuzulassen.
-
- Wird diese Anmerkung auf einen „ Kubernetes “-Load-Balancer-Dienst angewendet, der mit einem VPC-ALB verknüpft ist, müssen die ausgehenden Regeln der dem VPC-ALB zugewiesenen Sicherheitsgruppe geändert werden, um ausgehenden Datenverkehr zum angegebenen „ TCP “-Port zuzulassen.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-path- Der Pfad für die Gesundheitsprüfung URL für HTTP und HTTPs Gesundheitsprüfungen. Diese Bemerkung gilt nur, wenn
ibm-load-balancer-cloud-provider-vpc-health-check-protocolaufhttpoderhttpsgesetzt ist. Der Pfad URL muss das Format eines origin-form request target haben. Wenn diese Anmerkung nicht angegeben wird und dieibm-load-balancer-cloud-provider-vpc-health-check-protocol-Anmerkung aufhttpoderhttpsgesetzt ist, wird der Standardwert/verwendet. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-delay- Die Anzahl der Sekunden, die zwischen den Gesundheitsprüfungen gewartet wird. Standardmäßig ist dieser Wert auf
5gesetzt und hat ein Minimum von2und ein Maximum von60. Dieser Wert muss größer sein als deribm-load-balancer-cloud-provider-vpc-health-check-timeout-Wert, der standardmäßig auf2gesetzt ist. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-timeout- Die Anzahl der Sekunden, die auf eine Antwort auf eine Gesundheitsprüfung gewartet wird. Standardmäßig ist dieser Wert auf
2gesetzt und hat ein Minimum von1und ein Maximum von59. Dieser Wert muss kleiner sein als deribm-load-balancer-cloud-provider-vpc-health-check-delay, der standardmäßig auf5gesetzt ist. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-retries- Die maximale Anzahl der Wiederholungen der Zustandsprüfung für den VPC-Loadbalancer. Standardmäßig ist dieser Wert auf
2gesetzt und hat ein Minimum von1und ein Maximum von10. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-idle-connection-timeout- Das Zeitlimit für inaktive Verbindungen des Listeners in Sekunden. Die standardmäßige Leerlaufzeit hängt von Ihren Kontoeinstellungen ab. Normalerweise ist dieser Wert
50. Einige Konten auf der Zulassen-Liste haben jedoch größere Timeout-Einstellungen. Wenn Sie den Vermerk nicht setzen, verwenden Ihre Lastverteiler die Zeitüberschreitungseinstellung in Ihrem Konto. Sie können die Zeitüberschreitung explizit angeben, indem Sie diesen Vermerk setzen. Der Mindestwert ist50. Das Maximum beträgt7200. service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-name: "example-ingress-domain.<region>.containers.appdomain.cloud"- Versionen- 4.17 oder höher.
- Registrieren Sie die IP-Adresse des Load Balancer mit der angegebenen Ingress-Domäne. Wenn die angegebene Domäne nicht existiert, wird eine Domäne erstellt, die den internen,
IBM verwalteten Anbieter (
IBM NS1) verwendet. Um eine neue Domäne zu erstellen, muss der Name in allen vorhandenen Domänen (nicht nur in denen Ihres Clusters) eindeutig sein. Durch das Löschen des Load Balancer-Dienstes wird die IP-Adresse aus der Domäne entfernt. Durch das Entfernen der Anmerkung wird die IP-Adresse jedoch nicht aus der Domäne entfernt. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-instance-crn: "private-dns-crn"- Versionen- 4.15 oder höher.
- Die DNS-Einträge, die diesem Load Balancer zugeordnet werden
instancesollen. Weitere Informationen finden Sie unter Registrieren eines privaten DNS-Eintrags. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-zone-id: "dns-zone-id"- Versionen- 4.15 oder höher.
- Die DNS-Einträge, die diesem Load Balancer zugeordnet werden
zonesollen. Weitere Informationen finden Sie unter Registrieren eines privaten DNS-Eintrags. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-member-quota- Die Anzahl der Arbeitsknoten pro Zone, zu denen der Load Balancer leitet. Der Standardwert ist '8'. Bei einem Cluster mit Worker-Knoten in drei Zonen führt dies dazu, dass der Load Balancer die Last auf insgesamt 24 Worker-Knoten verteilt. Die Gesamtzahl der Arbeitsknoten in allen Zonen, zu denen der Load Balancer leitet, darf 50 nicht überschreiten. Wenn der Cluster weniger als 50 Arbeitsknoten in allen Zonen hat, geben Sie 0 an, um zu allen Arbeitsknoten in einer Zone zu leiten.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-security-group- Versionen- 1.30 oder höher.
- Eine vom Kunden verwaltete Sicherheitsgruppe, die dem VPC-Loadbalancer hinzugefügt wird. Wenn Sie die IBM Sicherheitsgruppe nicht verwenden möchten, geben Sie eine Sicherheitsgruppe an, die Sie besitzen und verwalten. Diese Option entfernt die IBM Sicherheitsgruppe und ersetzt sie durch die von Ihnen angegebene Sicherheitsgruppe. Wenn Sie die Anmerkung von einem vorhandenen Load Balancer entfernen, wird die von Ihnen hinzugefügte Sicherheitsgruppe durch die IBM Sicherheitsgruppe ersetzt. Sie können diesen Vermerk jederzeit hinzufügen oder entfernen. Sie sind für die Verwaltung Ihrer Sicherheitsgruppe verantwortlich und halten sie auf dem neuesten Stand.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-allow-outbound-traffic- Verfügbar für Cluster, die Secure by Default ausführen. Anmerkung, um Sicherheitsgruppen für jede IP-Adresse eines ALB zu erstellen, die mit einem von Ihnen angegebenen
externen Port verbunden ist. Diese Regeln werden in der Clustersicherheitsgruppe erstellt und automatisch aktualisiert, wenn sich die IP-Adresse des VPC ALB ändert. Geben Sie gültige externe Ports in einer kommagetrennten Liste an, z.
B.
80,443. Wenn in diesem Beispiel jeder öffentliche ALB, der mit jedem externen Portwert verbunden ist, zwei IP-Adressen hat, wird eine ausgehende Regel pro IP-Adresse erstellt, was insgesamt 4 neue Regeln ergibt. Sie können diesen Vermerk jederzeit hinzufügen oder entfernen. selector- Der Bezeichnungsschlüssel (
<selector_key>) und der Wert (<selector_value>), die Sie im Abschnittspec.template.metadata.labelsIhrer YAML-Datei für die App-Bereitstellung verwendet haben. Mit dieser angepassten Bezeichnung werden alle Pods gekennzeichnet, in denen Ihre App ausgeführt wird und die in den Lastausgleich einbezogen werden sollen. port- Der Port, den der Service überwacht.
targetPort- Der Port, an den der Service den Datenverkehr leitet. Die im Pod ausgeführte Anwendung muss auf eingehenden TCP-Datenverkehr an diesem Zielport warten. Der Zielport ist oft statisch im Image definiert, das im Anwendungs-Pod läuft. Der im Pod konfigurierte Zielport unterscheidet sich vom Knotenport für den Dienst und kann sich auch vom externen Port unterscheiden, der auf der VPC LB konfiguriert ist.
-
a-z0-9- ↩︎