Network Load Balancer for VPC-Instanz einrichten
Stellen Sie Ihre Anwendung dem öffentlichen oder privaten Netzwerk zur Verfügung, indem Sie einen öffentlichen oder privaten Kubernetes LoadBalancer
Dienst in jeder Zone Ihres VPC-Clusters einrichten. Anschließend können Sie optional
den VPC-NLB mit einem DNS-Eintrag und einem TLS-Zertifikat registrieren. VPC NLBs unterstützen sowohl die TCP- als auch die UDP-Protokolltypen.
Einrichten eines öffentlichen oder privaten VPC NLB
Setzen Sie Ihre Anwendung dem Netzwerkverkehr aus, indem Sie einen Kubernetes LoadBalancer
Dienst in jeder Zone Ihres Clusters einrichten. Wenn Sie den Dienst Kubernetes LoadBalancer
erstellen, wird in Ihrer VPC außerhalb
Ihres Clusters automatisch eine öffentliche oder private Network Load Balancer for VPC (VPC NLB) erstellt, die Anfragen an Ihre Anwendung weiterleitet.
Vorbereitende Schritte
- Vergewissern Sie sich, dass Sie über die Writer- oder **Manager-**IBM CloudIAM-Service-Zugriffsrolle für den Namensbereich verfügen, in dem Sie den
Kubernetes-
LoadBalancer
-Service für den VPC NLB bereitstellen. - Melden Sie sich an Ihrem Konto an. If applicable, target the appropriate resource group. Legen Sie den Kontext für den Cluster fest.
- Installieren Sie zum Anzeigen von VPC-NLBs das Plug-in
infrastructure-service
. Das Präfix für die Ausführung von Befehlen istibmcloud is
.ibmcloud plugin install infrastructure-service
- Für private VPC NLBs: Stellen Sie eine Verbindung zu Ihrem privaten VPC-Netzwerk her, beispielsweise über eine VPC VPN-Verbindung.
- Für private VPC NLBs: Aktivieren Sie Ihre Anwendung, um private Netzwerkanfragen zu empfangen.
- Erstellen Sie ein VPC-Subnetz, das für Ihren VPC NLB bestimmt ist. Dieses Teilnetz muss in derselben VPC und an derselben Position wie Ihr Cluster
vorhanden sein, kann aber nicht mit Ihrem Cluster oder Workerknoten verbunden werden. Wenn Sie einen bestimmten IP-Bereich eingeben, verwenden Sie nicht die folgenden reservierten Bereiche:
172.16.0.0/16
,172.18.0.0/16
,172.19.0.0/16
und172.20.0.0/16
. Nachdem Sie das Subnetz bereitgestellt haben, notieren Sie seine ID. - Wenn der Client, der sich über die VPC NLB mit Ihrer Anwendung verbindet, außerhalb der VPC und der Zone Ihres dedizierten VPC-Subnetzes liegt, müssen Sie eine benutzerdefinierte Ingress-Routing-Tabelle erstellen. Weitere Informationen finden Sie in der Tabelle unter den bekannten Einschränkungen und unter Über Routing-Tabellen und Routen. Wählen Sie eine der folgenden Verkehrsquellen für Ihre benutzerdefinierte Ingress-Routing-Tabelle: Für Datenverkehr aus einem lokalen Netzwerk wählen Sie Direktverbindung. Für Datenverkehr aus einer anderen VPC oder aus der klassischen Infrastruktur wählen Sie Transit-Gateway. Für Datenverkehr aus einer anderen Zone innerhalb derselben VPC wählen Sie VPC-Zone. Weitere Informationen finden Sie unter Einrichten der VPC VPN-Konnektivität.
- Erstellen Sie ein VPC-Subnetz, das für Ihren VPC NLB bestimmt ist. Dieses Teilnetz muss in derselben VPC und an derselben Position wie Ihr Cluster
vorhanden sein, kann aber nicht mit Ihrem Cluster oder Workerknoten verbunden werden. Wenn Sie einen bestimmten IP-Bereich eingeben, verwenden Sie nicht die folgenden reservierten Bereiche:
Konfigurieren Sie den LoadBalancer
-Dienst
-
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 Abschnittannotations
in der Beispieldatei enthält nur einige verfügbare Anmerkungen. Eine vollständige Liste der erforderlichen und optionalen VPC NLB-Anmerkungen finden Sie unter Anmerkungen und Spezifikationen.Damit Ihr VPC NLB leicht identifizierbar ist, sollten Sie den Dienst im Format
<app_name>-vpc-nlb-<VPC_zone>
benennen.apiVersion: v1 kind: Service metadata: name: <app_name>-vpc-nlb-<VPC_zone> annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "my-load-balancer" service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "nlb" service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "public" service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector: "<key>=<value>" service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets: "<subnet1_ID,subnet2_ID>" 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
LoadBalancer
in Ihrem Cluster.kubectl apply -f <filename>.yaml -n <namespace>
-
Überprüfen Sie, ob der Kubernetes Service vom Typ
LoadBalancer
in Ihrem Cluster erfolgreich erstellt wurde. Wenn der Service erstellt wurde, enthält das Feld LoadBalancer Ingress eine externe IP-Adresse, die von der VPC-NLB zugeordnet wird.Die Bereitstellung der VPC-NLB in Ihrer VPC dauert einige Minuten. Die externe IP-Adresse des Kubernetes-Service vom Typ
LoadBalancer
weist möglicherweise den Statuspending
auf, bis die VPC-NLB vollständig eingerichtet ist.kubectl describe svc myloadbalancer -n <namespace>
CLI-Beispielausgabe für einen öffentlichen
LoadBalancer
-Service:NAME: myapp-vpc-nlb-us-east Namespace: default Labels: <none> Annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: nlb Selector: app=echo-server Type: LoadBalancer IP: 172.21.204.12 LoadBalancer Ingress: 169.XXX.XXX.XXX Port: tcp-80 80/TCP TargetPort: 8080/TCP NodePort: tcp-80 32022/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: 30882 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning SyncLoadBalancerFailed 13m (x5 over 15m) service-controller Error syncing load balancer: failed to ensure load balancer: kube-bqcssbbd0bsui62odcdg-2d93b07decf641d2ad3f9c2985122ec1 for service default/myvpcnlb is busy: offline/create_pending Normal EnsuringLoadBalancer 9m27s (x7 over 15m) service-controller Ensuring load balancer Normal EnsuredLoadBalancer 9m20s service-controller Ensured load balancer Normal CloudVPCLoadBalancerNormalEvent 8m17s ibm-cloud-provider Event on cloud load balancer myvpcnlb for service default/myvpcnlb with UID 2d93b07d-ecf6-41d2-ad3f-9c2985122ec1: The VPC load balancer that routes requests to this Kubernetes LoadBalancer service is currently online/active.
-
Überprüfen Sie, ob die VPC-NLB in Ihrer VPC erfolgreich erstellt wurde. Überprüfen Sie, ob die VPC-NLB in der Ausgabe für Operating Status den Wert
online
und für Provision Status den Wertactive
aufweist.ibmcloud is load-balancers
In der folgenden CLI-Beispielausgabe wird die erstellte VPC-NLB mit dem Namen
kube-bh077ne10vqpekt0domg-046e0f754d624dca8b287a033d55f96e
für den Kubernetes-Service vom TypLoadBalancer
angezeigt:ID Name Created Host Name Is Public Listeners Operating Status Pools Private IPs Provision Status Public IPs Subnets Resource Group 06496f64-a689-4693-ba23-320959b7b677 kube-bh077ne10vqpekt0domg-046e0f754d624dca8b287a033d55f96e 8 minutes ago 1234abcd-us-south.lb.appdomain.cloud yes 95482dcf-6b9b-4c6a-be54-04d3c46cf017 online 717f2122-5431-403c-b21d-630a12fc3a5a 10.241.0.7 active 169.63.99.184 c6540331-1c1c-40f4-9c35-aa42a98fe0d9 00809211b934565df546a95f86160f62
-
Greifen Sie auf die IP-Adresse des Kubernetes-
LoadBalancer
-Service zu, die Sie in Schritt 4 ermittelt haben. und auf den Port Ihrer App im Format<external_IP>:<app_port>
. -
Optional: Wiederholen Sie diese Schritte, um eine öffentliche VPC-NLB in jeder Zone bereitzustellen, in der Ihre App verfügbar gemacht werden soll. Anschließend können Sie die externen IP-Adressen der VPC-NLB in jeder Zone in einer DNS-Unterdomäne registrieren.
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 VPC-NLBs, die IP-Adressen aus dem Teilnetz verwenden, Probleme auftreten, und Sie können möglicherweise keine neuen Lastausgleichsfunktionen erstellen.
Einrichten eines öffentlichen NLB unter Verwendung eines Portbereichs
Portbereiche können in öffentlichen NLBs verwendet werden, wenn ein Dienst von einem einzigen Hostnamen aus gehostet werden muss, der mehrere Backend-Anwendungen hat, die jeweils auf einer separaten Portnummer warten. Um Portbereiche in Ihrem
Kubernetes-Cluster zu verwenden, müssen einige manuelle Konfigurationen vorgenommen werden. Zunächst muss die Option ibm-load-balancer-cloud-provider-vpc-port-range
gesetzt werden. Sie kann einen oder mehrere Bereiche enthalten,
die jeweils durch ein Komma getrennt sind. Der spec.ports.port
-Wert muss ebenfalls auf den Mindestwert im Anschlussbereich gesetzt werden.
Im folgenden Beispiel wird ein Anschlussbereich von 30000-30010
verwendet.
Nodeport-Dienste müssen für jeden Einsatz, bei dem der NLB-Dienst die Anfrage weiterleitet, manuell erstellt werden. Die Portnummer jedes dieser Nodeport-Dienste muss innerhalb des Portbereichs liegen, der im NLB-Dienst konfiguriert ist.
Im folgenden Beispieldiagramm wird ein Nodeport-Dienst mit Port 30000 für Einsatz 1 und ein Nodeport-Dienst mit Port 30001 für Einsatz 2 erstellt.
Der Benutzer stellt eine Anfrage an Port 30001 des NLB, der den Portbereich enthält. Diese Anfrage wird an den VPC-NLB-Dienst gerichtet, der die Anfrage an den Nodeport-Dienst im Cluster weiterleitet, der ebenfalls auf Port 30001 hört, in diesem Fall für Einsatz 2. Der Nodeport-Dienst leitet die Anfrage dann an den Zielport der ausgewählten Pods von Einsatz 2 weiter.
Erstellen Sie einen NLB, der einen Portbereich verwendet, anhand des folgenden Beispiels. Die Selektor- und Backend-Pods müssen mit dem Lastausgleichsdienst für den Portbereich verknüpft werden, damit die Zustandsprüfungen erfolgreich sind und die Daten an die Ports im Portbereich geliefert werden. Um den Portbereich zu nutzen, müssen Sie zusätzliche NodePort-Dienste erstellen, deren Portwerte in dem Bereich liegen, der durch den Load Balancer-Dienst definiert ist.
-
Speichern Sie die folgende Beispielkonfiguration
LoadBalancer
in einer Datei mit dem Namenloadbalancer.yaml
.apiVersion: v1 kind: Service metadata: annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: nlb service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-port-range: 30000-30010 name: nlb-port-range spec: externalTrafficPolicy: Cluster ports: - port: 30000 # Must match min from the port range protocol: TCP nodePort: 30011 # Can be port in range or not targetPort: 8080 selector: app: echo-server # Must be valid for health checks to work type: LoadBalancer
-
Erstellen Sie den Dienst.
kubectl apply -f loadbalancer.yaml
-
Erstellen Sie einen
NodePort
-Dienst mit Port-Werten, die in dem Port-Bereich liegen, den Sie in dem zuvor erstelltenLoadBalancer
angegeben haben.apiVersion: v1 kind: Service metadata: name: echo-server-node-port spec: ports: - port: 80 protocol: TCP # The protocol of the port range nodePort: 30003 # Node port in the port range targetPort: 8080 selector: app: echo-server type: NodePort
-
Erstellen Sie den Dienst NodePort.
kubectl apply -f nodeport.yaml
-
Um auf einen Port zuzugreifen, der in dem von NLB bereitgestellten Bereich liegt.
curl https://<public ip assigned to NLB>:30003
30003
= Ist ein Knotenanschluss im Bereich, der auf eine Anfrage antwortet- Andere Ports in diesem Bereich reagieren nicht, es sei denn, es werden zusätzliche Knotenportdienste erstellt.
DNS-Datensatz und TLS-Zertifikat registrieren
VPC-NLBs stellen statische externe IP-Adressen bereit, über die Sie auf Ihre App zugreifen können. Zur Registrierung eines SSL-Zertifikats für Ihre App-Domäne für die Unterstützung von HTTPS können Sie eine von IBM bereitgestellte Unterdomäne erstellen oder eine eigene angepasste Domäne bereitstellen.
Sie haben zum Beispiel einen Mehrzonencluster und führen Replikate Ihrer App auf Workerknoten in jeder Zone Ihres Clusters aus. Sie erstellen eine VPC NLB pro Zone, um die App-Replikate freizugeben. Anschließend können Sie die externen IP-Adressen, die von jeder VPC-NLB bereitgestellt werden, in einem DNS-Eintrag registrieren.
Nach der Erstellung einer DNS-Unterdomäne für VPC-NLBs können Sie keine nlb-dns health-monitor
-Befehle verwenden, um eine angepasste Statusprüfung zu erstellen. Stattdessen wird die VPC-Standardstatusprüfung verwendet. Weitere Informationen
finden Sie in der VPC-Dokumentation.
- Erstellen Sie eine VPC NLB pro Zone für Ihre Anwendung. Stellen Sie sicher, dass Sie in Ihrem Kubernetes-Service vom Typ
LoadBalancer
, von dem die VPC-NLB konfiguriert wird, einen HTTPS-Port definieren. - Um das SSL-Zertifikat für den Zugriff über HTTPS auf Ihre App verwenden zu können, muss Ihre App in der Lage sein, TLS-Verbindungen zu beenden.
Folgen Sie den Schritten, um VPC NLB IP-Adressen mit einer DNS-Subdomäne zu registrieren.
-
Rufen Sie die externe IP-Adresse Ihrer Lastausgleichsfunktion ab.
kubectl get svc -o wide
Beispielausgabe
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR ... myapp-vpc-nlb-jp-tok-3 LoadBalancer 172.21.xxx.xxx 169.xx.xxx.xx 8080:30532/TCP 1d run=webserver
-
Erstellen Sie eine angepasste oder von IBM bereitgestellte DNS-Unterdomäne für die IP-Adresse.
-
Angepasste Domäne:
- 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 Aliasnamen für Ihre angepasste Domäne, indem Sie die IP-Adressen der Lastausgleichsfunktionen als A-Datensätze angeben.
-
Von IBM bereitgestellte Unterdomäne: Mit
nlb-dns
-Befehlen können Sie eine Unterdomäne mit einem SSL-Zertifikat für die IP-Adressen generieren. IBM Cloud übernimmt für Sie die Generierung und Verwaltung des Platzhalter-SSL-Zertifikats für die Unterdomäne.- Erstellen Sie eine DNS-Unterdomäne und ein SSL-Zertifikat.
ibmcloud ks nlb-dns create vpc-gen2 --type public --cluster <cluster_name_or_id> --ip <vpc_nlb1_ip> --ip <vpc_nlb2_ip> --ip <vpc_nlb3_ip>
- Überprüfen Sie, ob die Unterdomäne erstellt wurde. Weitere Informationen finden Sie unter Informationen zum Unterdomänenformat.
Beispielausgabeibmcloud ks nlb-dns ls --cluster <cluster_name_or_id>
Subdomain IP(s) Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud 169.46.xx.x,169.48.xxx.xx,169.48.xxx.xx None created <certificate>
- Erstellen Sie eine DNS-Unterdomäne und ein SSL-Zertifikat.
-
-
Öffnen Sie einen Web-Browser und geben Sie die URL für den Zugriff auf Ihre App über die Unterdomäne ein.
Wenn Sie das SSL-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.
Anmerkungen und Spezifikationen
Überprüfen Sie die erforderlichen und optionalen VPC NLB-Anmerkungen und Spezifikationen.
Erforderliche Vermerke und Spezifikationen
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "nlb"
- Anmerkung zur Erstellung eines VPC NLB. Wenn Sie diesen Vermerk nicht einfügen und
nlb
angeben, wird standardmäßig eine VPC ALB erstellt. service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private"
- (Erforderlich für private NLBs) Anmerkung zur Angabe eines Dienstes, der private Anfragen annimmt. Wenn diese Anmerkung nicht enthalten ist, wird ein öffentlicher VPC NLB erstellt.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets
- (Erforderlich für private NLBs, optional für öffentliche NLBs) Anmerkung zur Angabe des dedizierten Subnetzes, in dem die VPC NLB eingesetzt wird. Der Wert kann als VPC-Teilnetz-ID, VPC-Teilnetzname oder VPC-Teilnetz-CIDR angegeben werden.
Sie müssen nur ein Teilnetz angeben. Das Teilnetz muss sich in derselben VPC wie Ihr Cluster und in einer Zone befinden, in der Ihr Cluster über Workerknoten verfügt, aber es können keine Workerknoten mit diesem Teilnetz verbunden sein.
Die Workerknoten, die sich in der gleichen Zone wie dieses Teilnetz befinden, sind so konfiguriert, dass sie Verkehr vom VPC-NLB empfangen. Um Teilnetze in allen Ressourcengruppen anzuzeigen, führen Sie
ibmcloud ks subnets --provider vpc-gen2 --vpc-id <vpc> --zone <zone>
aus. externalTrafficPolicy
- Geben Sie
Local
oderCluster
an. - Definieren Sie diesen Parameter mit
Local
, um die Quellen-IP-Adresse von Clientanforderungen an Ihre Apps beizubehalten. Diese Einstellung verhindert, dass der eingehende Verkehr an einen anderen Knoten weitergeleitet wird. Diese Option konfiguriert auch HTTP-Statusprüfungen. - Wenn der Wert
Cluster
festgelegt ist, wird DSR nur über den ersten Workerknoten implementiert, an den die VPC-NLB die eingehende Anforderung zu Anfang weiterleitet. Nachdem die eingehende Anfrage eingetroffen ist, wird sie an einen Arbeitsknoten weitergeleitet, der den App-Pod enthält, der sich in einer anderen Zone befinden kann. Die Antwort des App-Pods wird an den ursprünglichen Workerknoten gesendet und dieser Workerknoten verwendet DSR, um die Antwort direkt unter Umgehung der VPC-NLB an den Client zu senden. Diese Option konfiguriert auch TCP-Statusprüfungen. Bei UDP-Loadbalancern istservice.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-udp
erforderlich, wenn Sie die OptionCluster
wählen. Weitere Informationen finden Sie unter Konfiguration von TCP-Zustandsprüfungen für UDP-Lastverteiler.
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-zone
- Annotation zur Angabe einer VPC-Zone, der Ihr Cluster zugeordnet ist. Die VPC-NLB wird in demselben Teilnetz der betreffenden Zone bereitgestellt, mit dem auch Ihre Workerknoten verbunden sind. Wenn Sie diese Anmerkung später in eine andere
Zone ändern, wird die VPC-NLB nicht in die neue Zone verschoben. Wenn Sie diese Anmerkung oder die
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets annotation
nicht angeben, wird die VPC NLB in der optimalsten Zone bereitgestellt (z. B. in einer Zone mit Arbeitsknoten im ZustandReady
). Wenn das Labeldedicated: edge
auf Arbeiterknoten eingestellt ist und Sie diese Anmerkung angeben, werden nur Edge-Knoten in der angegebenen Zone für den Empfang von Datenverkehr konfiguriert. 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-gen2
aus. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector
- Anmerkung zur Angabe eines Selektors für die Beschriftung von Arbeitsknoten. Sie können bestimmte Arbeitsknoten in Ihrem Cluster für den Empfang von Datenverkehr konfigurieren, indem Sie Label-Selektorschlüssel angeben. Sie können nur einen
Bezeichnungsselektor in die Anmerkung aufnehmen, und der Selektor muss im Format
"key=value"
angegeben werden. Wenn diese Anmerkung nicht angegeben wird, sind alle Arbeitsknoten in Ihrem Cluster so konfiguriert, dass sie Verkehr vom VPC NLB empfangen. Dieser Vermerk hat Vorrang vor dem Vermerkservice.kubernetes.io/ibm-load-balancer-cloud-provider-zone
, und allededicated: edge
Beschriftungen von Arbeitsknoten 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 NLB neu erstellen oder aktualisieren, damit der neu gelabelte Arbeitsknoten Datenverkehr empfangen kann. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-udp
- Der TCP-Knotenport, der für TCP-Zustandsprüfungen in einem UDP-Loadbalancer verwendet wird. Erforderlich für UDP-Lastausgleichsfunktionen, bei denen
externalTrafficPolicy
aufCluster
festgelegt ist. Weitere Hinweise zum Festlegen eines Portwerts finden Sie unter TCP-Statusprüfungen für UDP-Lastausgleichsfunktionen konfigurieren. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-protocol
- Diese Anmerkung legt das Protokoll für die Zustandsprüfung der VPC-Load-Balancer-Ressource fest, 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-Dienstspezifikation bestimmt. Mit dieser Anmerkung wird diese Logik jedoch außer Kraft gesetzt. Diese Anmerkung ändert nicht, wie Kubernetes, und insbesondere kube-proxy, sich in Bezug auf die verschiedenen Einstellungen vonexternalTrafficPolicy
verhält. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-port
- Der TCP-Port, der für die Gesundheitsprüfungen verwendet wird. Dieser Vermerk gilt nur, wenn auch
ibm-load-balancer-cloud-provider-vpc-health-check-protocol
angegeben ist. Wenn der angegebene TCP-Port außerhalb des Kubernetes-Knoten-Portbereichs (30.000-32.767) liegt, muss die VPC-Sicherheitsgruppe, die auf die Cluster-Arbeitsknoten angewendet wird, geändert werden, um eingehenden Verkehr auf dem Port zuzulassen. Wenn diese Anmerkung auf einen Kubernetes-Load-Balancer-Dienst angewendet wird, der mit einem VPC ALB verbunden ist, müssen die ausgehenden Regeln der Sicherheitsgruppe, die dem VPC ALB zugewiesen ist, geändert werden, um ausgehenden Verkehr 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-protocol
aufhttp
oderhttps
gesetzt 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 aufhttp
oderhttps
gesetzt ist, wird der Standardwert/
verwendet. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-delay
- Optional. Die Anzahl der Sekunden, die zwischen den Gesundheitsprüfungen gewartet wird. Standardmäßig ist dieser Wert auf
5
gesetzt und hat ein Minimum von2
und ein Maximum von60
. Dieser Wert muss größer sein als deribm-load-balancer-cloud-provider-vpc-health-check-timeout
-Wert, der standardmäßig auf2
gesetzt ist. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-timeout
- Optional. Die Anzahl der Sekunden, die auf eine Antwort auf eine Gesundheitsprüfung gewartet wird. Standardmäßig ist dieser Wert auf
2
gesetzt und hat ein Minimum von1
und ein Maximum von59
. Dieser Wert muss kleiner sein als deribm-load-balancer-cloud-provider-vpc-health-check-delay
, der standardmäßig auf5
gesetzt 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
2
gesetzt und hat ein Minimum von1
und ein Maximum von10
. service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-name: "example-ingress-domain.<region>.containers.appdomain.cloud"
- Version 1.30 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 (
akamai
) 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-member-quota
- Optional. Die Anzahl der Arbeitsknoten pro Zone, zu denen der Load Balancer leitet. Der Standardwert ist '8'. Bei einem Cluster mit Arbeitsknoten in drei Zonen führt dies dazu, dass der Load Balancer an insgesamt 24 Arbeitsknoten weiterleitet. 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
- Version 1.30 und höher.
- Optional. Eine vom Kunden verwaltete Sicherheitsgruppe, die dem VPC-Loadbalancer hinzugefügt wird. Wenn Sie nicht die IBM-verwaltete Sicherheitsgruppe verwenden möchten, geben Sie eine Sicherheitsgruppe an, die Sie besitzen und verwalten. Diese Option entfernt die IBM-verwaltete 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-verwaltete 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 Sicherheitsgruppe des Clusters erstellt. 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.labels
Ihrer 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
- Optional: Der Port, an den der Datenverkehr vom Service weitergeleitet wird. Die im Pod laufende Anwendung muss auf diesem Zielport auf eingehenden TCP-Verkehr 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.