Configura indirizzi IP esterni per GKE su VMware con i bilanciatori del carico BIG-IP di F5
L'installazione predefinita di Anthos Service Mesh su GKE su VMware presuppone che gli indirizzi IP esterni vengano allocati automaticamente per i servizi LoadBalancer
.
Questo non è vero per GKE su VMware con bilanciatori del carico BIG-IP F5.
Per questo motivo, devi allocare uno o più indirizzi IP esterni, a seconda della configurazione del mesh di servizi:
- Un indirizzo IP esterno per la risorsa gateway in entrata di Anthos Service Mesh, ad esempio il gateway utilizzato dai clienti per accedere ai carichi di lavoro da internet.
- Un altro indirizzo IP esterno per consentire ai cluster di comunicare tra loro se sono presenti su reti diverse all'interno del mesh di servizi. È noto come porta est-ovest.
Configurazione dell'indirizzo IP del gateway in entrata
Per configurare un indirizzo IP esterno per il gateway in entrata, utilizza le istruzioni in una delle sezioni seguenti, a seconda della modalità di bilanciamento del carico di GKE su VMware:
- Applica una patch alla 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 tua shell: Vengono visualizzate tutte le porte per i gateway di Anthos 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 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
venga inoltrato a192.168.0.10:31380
,192.168.0.11:31380
o192.168.0.12:31380
. Puoi selezionare le porte di servizio che vuoi esporre su questo 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 richiede la ripetizione del comando finché non vedi 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 est-ovest
Per configurare un indirizzo IP esterno per il gateway est-ovest, utilizza le istruzioni riportate in una delle sezioni seguenti, a seconda della modalità di bilanciamento del carico di GKE su VMware:
- Applica una 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 tua shell: Vengono visualizzate tutte le porte per i gateway di Anthos Service Mesh. L'output 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 per il 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
venga inoltrato a192.168.0.10:31380
,192.168.0.11:31380
o192.168.0.12:31380
. Puoi selezionare le porte di servizio che vuoi esporre su questo VIP specifico.
Modalità integrata
Modalità manuale
Verifica che al gateway est-ovest sia stato assegnato un indirizzo IP esterno. Potrebbe esserci un leggero ritardo che richiede l'esecuzione di questo comando finché non 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