Externe IP-Adressen für Google Distributed Cloud mit F5 BIG-IP-Load Balancern konfigurieren
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Die Standardinstallation von Cloud Service Mesh in Google Distributed Cloud geht davon aus, dass externe IP-Adressen automatisch für LoadBalancer
-Dienste zugewiesen werden.
Das gilt nicht für Google Distributed Cloud mit F5 BIG-IP-Load Balancern.
Aus diesem Grund müssen Sie abhängig von Ihrer Service Mesh-Konfiguration eine oder mehrere externe IP-Adressen zuweisen:
- Eine externe IP-Adresse für die Cloud Service Mesh-Ingress-Gateway-Ressource, z. B. das Gateway, über das Ihre Kunden auf Ihre Arbeitslasten aus dem Internet zugreifen.
- Eine andere externe IP-Adresse, mit der Ihre Cluster miteinander kommunizieren können, wenn sie in verschiedenen Netzwerken innerhalb Ihres Service Mesh vorhanden sind. Dies wird als east-west-Gateway bezeichnet.
IP-Adresse für das Ingress-Gateway konfigurieren
Folgen Sie zum Konfigurieren einer externen IP-Adresse für das Ingress-Gateway der Anleitung in einem der folgenden Abschnitte, je nach Load-Balancing-Modus von Google Distributed Cloud:
- Patchen Sie die Konfiguration des
istio-ingressgateway
-Dienstes mit der externen IP-Adresse für das Ingress-Gateway:kubectl patch svc istio-ingressgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "
INGRESS_GATEWAY_IP "}]' -
Rufen Sie die Konfiguration des Dienstes
istio-ingressgateway
in der Shell auf: Es wird jeder Port für die Gateways von Cloud Service Mesh angezeigt. Die Ausgabe des Befehls sieht in etwa so aus:kubectl get svc -n istio-system istio-ingressgateway -o yaml
... ports: - name: status-port nodePort: 30391 port: 15020 protocol: TCP targetPort: 15020 - name: http2 nodePort: 31380 port: 80 protocol: TCP targetPort: 80 - name: https nodePort: 31390 port: 443 protocol: TCP targetPort: 443 - name: tcp nodePort: 31400 port: 31400 protocol: TCP targetPort: 31400 - name: https-kiali nodePort: 31073 port: 15029 protocol: TCP targetPort: 15029 - name: https-prometheus nodePort: 30253 port: 15030 protocol: TCP targetPort: 15030 - name: https-grafana nodePort: 30050 port: 15031 protocol: TCP targetPort: 15031 - name: https-tracing nodePort: 31204 port: 15032 protocol: TCP targetPort: 15032 - name: tls nodePort: 30158 port: 15443 protocol: TCP targetPort: 15443 ...
-
Machen Sie diese Ports über Ihren Load-Balancer verfügbar.
Der Dienstporthttp2
hat beispielsweiseport
80 undnodePort
31380. Angenommen, die Knotenadressen für Ihren Nutzercluster lauten192.168.0.10
,192.168.0.11
und192.168.0.12
und die VIP Ihres Load-Balancers ist203.0.113.1
.
Konfigurieren Sie dann Ihren Load-Balancer so, dass der an203.0.113.1:80
gesendete Traffic an192.168.0.10:31380
,192.168.0.11:31380
oder192.168.0.12:31380
weitergeleitet wird. Sie können die Dienstports auswählen, die Sie für diese VIP freigeben möchten.
Prüfen Sie, ob dem Ingress-Gateway eine externe IP-Adresse zugewiesen wurde. Es kann zu einer leichten Verzögerung kommen, die eine wiederholte Ausführung dieses Befehls erfordert, bis Sie das gewünschte Ergebnis sehen:
kubectl --context="${CTX_CLUSTER1}" get svc istio-ingressgateway -n istio-system
Folgende Ausgabe wird erwartet:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s
IP-Adresse für das east-west-Gateway konfigurieren
Folgen Sie zum Konfigurieren einer externen IP-Adresse für das East-West-Gateway der Anleitung in einem der folgenden Abschnitte, je nach Load-Balancing-Modus von Google Distributed Cloud:
- Patchen Sie die Konfiguration des Dienstes
istio-eastwestgateway
mit der externen IP-Adresse für das east-west-Gateway:kubectl patch svc istio-eastwestgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "
EAST_WEST_GATEWAY_IP "}]' -
Rufen Sie die Konfiguration des Dienstes
istio-eastwestgateway
in der Shell auf: Es wird jeder Port für die Gateways von Cloud Service Mesh angezeigt. Die Ausgabe des Befehls sieht in etwa so aus:kubectl get svc -n istio-system istio-eastwestgateway -o yaml
ports: - name: status-port nodePort: 31781 port: 15021 protocol: TCP targetPort: 15021 - name: tls nodePort: 30498 port: 15443 protocol: TCP targetPort: 15443 - name: tls-istiod nodePort: 30879 port: 15012 protocol: TCP targetPort: 15012 - name: tls-webhook nodePort: 30336 port: 15017 protocol: TCP targetPort: 15017 ...
-
Machen Sie diese Ports über Ihren Load-Balancer verfügbar.
Der Dienstporthttp2
hat beispielsweiseport
80 undnodePort
31380. Angenommen, die Knotenadressen für Ihren Nutzercluster lauten192.168.0.10
,192.168.0.11
und192.168.0.12
und die VIP Ihres Load-Balancers ist203.0.113.1
.
Konfigurieren Sie dann Ihren Load-Balancer so, dass der an203.0.113.1:80
gesendete Traffic an192.168.0.10:31380
,192.168.0.11:31380
oder192.168.0.12:31380
weitergeleitet wird. Sie können die Dienstports auswählen, die Sie für diese VIP freigeben möchten.
Prüfen Sie, ob dem east-west-Gateway eine externe IP-Adresse zugewiesen wurde. Es kann zu einer leichten Verzögerung kommen, die eine wiederholte Ausführung dieses Befehls erfordert, bis Sie das gewünschte Ergebnis sehen:
kubectl --context="${CTX_CLUSTER1}" get svc istio-eastwestgateway -n istio-system
Folgende Ausgabe wird erwartet:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-eastwestgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s