Externe IP-Adressen für Google Distributed Cloud konfigurieren
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 ist bei Google Distributed Cloud nicht der Fall. 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
Um eine externe IP-Adresse für das Ingress-Gateway zu konfigurieren, folgen Sie einem der folgenden Abschnitte, je nach Load-Balancing-Modus in 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: Jeder Port für die Gateways von Cloud Service Mesh wird 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.
Integrierter Modus
Manueller Modus
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
Um eine externe IP-Adresse für das East-West-Gateway zu konfigurieren, folgen Sie 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: Jeder Port für die Gateways von Cloud Service Mesh wird 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.
Integrierter Modus
Manueller Modus
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