Configurare gli indirizzi IP esterni per Google Distributed Cloud (solo software) per VMware con i bilanciatori del carico F5 BIG-IP
L'installazione predefinita di Cloud Service Mesh su Google Distributed Cloud (solo software) per VMware presuppone che gli indirizzi IP esterni vengano allocati automaticamente per i servizi LoadBalancer
.
Questo non è vero per Google Distributed Cloud (solo software) per VMware con bilanciatori del carico F5 BIG-IP.
Per questo motivo, devi allocare uno o più indirizzi IP esterni,
a seconda della configurazione del tuo service mesh:
- Un indirizzo IP esterno per la risorsa gateway di ingresso Cloud Service Mesh, ad esempio il gateway utilizzato dai clienti per accedere ai tuoi carichi di lavoro da internet.
- Un altro indirizzo IP esterno per consentire ai cluster di comunicare tra loro se esistono su reti diverse all'interno del tuo service mesh. Questo è chiamato gateway est-ovest.
Configurazione dell'indirizzo IP del gateway in entrata
Per configurare un indirizzo IP esterno per il gateway in entrata, segui le istruzioni in una di queste sezioni, a seconda del Google Distributed Cloud (solo software) per la modalità di bilanciamento del carico VMware:
- Esegui il patching della configurazione del servizio
istio-ingressgateway
con l'indirizzo IP esterno del gateway in entrata:kubectl patch svc istio-ingressgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "INGRESS_GATEWAY_IP"}]'
-
Visualizza la configurazione del servizio
istio-ingressgateway
nella shell: Vengono visualizzate tutte le porte per i gateway di Cloud Service Mesh. L'output comando è simile al seguente: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 ...
-
Esponi queste porte tramite il bilanciatore del carico.
Ad esempio, la porta del servizio denominatahttp2
haport
80 enodePort
31380. Supponiamo che gli indirizzi dei nodi per il tuo cluster utente siano192.168.0.10
,192.168.0.11
,192.168.0.12
e del bilanciatore del carico Il VIP è203.0.113.1
.
Configura il bilanciatore del carico in modo che il traffico inviato a203.0.113.1:80
venga inoltrato a192.168.0.10:31380
,192.168.0.11:31380
o192.168.0.12:31380
. Puoi selezionare le porte del servizio che vuoi esporre sul VIP specifico.
Modalità integrata
Modalità manuale
Verifica che al gateway in entrata sia stato assegnato un indirizzo IP esterno. Potrebbe verificarsi un leggero ritardo che ti richiede di ripetere questo comando fino a quando non visualizzi il risultato previsto:
kubectl --context="${CTX_CLUSTER1}" get svc istio-ingressgateway -n istio-system
L'output previsto è:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s
Configurazione dell'indirizzo IP del gateway east-west
Per configurare un indirizzo IP esterno per il gateway est-ovest, segui le istruzioni in una di queste sezioni, a seconda della modalità di bilanciamento del carico di Google Distributed Cloud (solo software) per VMware:
- Applica la patch alla configurazione del servizio
istio-eastwestgateway
con l'indirizzo IP esterno per il gateway est-ovest:kubectl patch svc istio-eastwestgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "EAST_WEST_GATEWAY_IP"}]'
-
Visualizza la configurazione del servizio
istio-eastwestgateway
nella shell: Viene visualizzata ciascuna delle porte per i gateway di Cloud Service Mesh. L'output del comando è simile al seguente: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 ...
-
Esponi queste porte tramite il bilanciatore del carico.
Ad esempio, la porta del servizio denominatahttp2
haport
80 enodePort
31380. Supponiamo che gli indirizzi dei nodi del tuo cluster utente siano192.168.0.10
,192.168.0.11
e192.168.0.12
e che il VIP del bilanciatore del carico sia203.0.113.1
.
Configura il bilanciatore del carico in modo che il traffico inviato a203.0.113.1:80
sia inoltrato a192.168.0.10:31380
,192.168.0.11:31380
o192.168.0.12:31380
. Puoi selezionare le porte del servizio che vuoi esporre sul VIP specifico.
Modalità integrata
Modalità manuale
Verifica che al gateway est-ovest sia stato assegnato un indirizzo IP esterno. Là potrebbe esserci un leggero ritardo che richiede la ripetizione del comando finché vedi il risultato previsto:
kubectl --context="${CTX_CLUSTER1}" get svc istio-eastwestgateway -n istio-system
L'output previsto è:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-eastwestgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s