L'installazione predefinita di Anthos Service Mesh presuppone che gli indirizzi IP esterni vengano allocati automaticamente per i servizi LoadBalancer
. Questo non è vero in GKE su VMware. 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 Anthos Service Mesh, ad esempio il gateway utilizzato dai clienti per accedere ai carichi di lavoro da internet.
- Un altro indirizzo IP esterno per la comunicazione tra i cluster se esistono su reti diverse all'interno del tuo mesh di servizi. Questo è indicato come porta est-ovest.
Configurazione dell'indirizzo IP del gateway in entrata
Per configurare un indirizzo IP esterno per il gateway in entrata, segui una delle sezioni seguenti, a seconda della modalità di bilanciamento del carico del cluster:
- Applica una patch alla configurazione del servizio
istio-ingressgateway
con l'indirizzo IP esterno per il 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: Viene visualizzata ogni porta 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 di servizio denominatahttp2
haport
80 enodePort
31380. Supponi 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 l'esecuzione di questo comando fino a quando non vedi il risultato desiderato:
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, segui una delle sezioni seguenti, a seconda della modalità di bilanciamento del carico del cluster:
- 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: Viene visualizzata ogni porta 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 di servizio denominatahttp2
haport
80 enodePort
31380. Supponi 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 verificarsi un leggero ritardo che richiede l'esecuzione di questo comando fino a quando non vedi il risultato desiderato:
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