L'installation d'Anthos Service Mesh par défaut suppose que les adresses IP externes sont automatiquement attribuées aux services LoadBalancer
. Ce n'est pas le cas dans GKE sur VMware. Par conséquent, vous devez allouer une ou plusieurs adresses IP externes en fonction de la configuration de votre maillage de services :
- Une adresse IP externe pour la ressource de passerelle d'entrée d'Anthos Service Mesh, par exemple la passerelle qui permet à vos clients d'accéder à vos charges de travail depuis Internet.
- Une autre adresse IP externe pour que vos clusters puissent communiquer entre eux s'ils se trouvent dans différents réseaux du maillage de services. C'est ce que l'on appelle la passerelle est-ouest.
Configurer l'adresse IP de la passerelle d'entrée
Pour configurer une adresse IP externe pour la passerelle d'entrée, suivez les instructions de l'une des sections ci-dessous en fonction du mode d'équilibrage de charge du cluster :
- Corrigez la configuration du service
istio-ingressgateway
avec l'adresse IP externe de la passerelle d'entrée :kubectl patch svc istio-ingressgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "INGRESS_GATEWAY_IP"}]'
-
Affichez la configuration du service
istio-ingressgateway
dans votre interface système : Chacun des ports des passerelles d'Anthos Service Mesh est affiché. Le résultat de la commande ressemble à ce qui suit :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 ...
-
Accordez l'accès à ces ports via votre équilibreur de charge.
Par exemple, le port de servicehttp2
utilise leport
80 et lenodePort
31380. Supposons que les adresses des nœuds de votre cluster d'utilisateur sont192.168.0.10
,192.168.0.11
et192.168.0.12
, et que l'adresse IP virtuelle de votre équilibreur de charge est203.0.113.1
.
Configurez votre équilibreur de charge de sorte que le trafic dirigé vers203.0.113.1:80
soit transféré vers192.168.0.10:31380
,192.168.0.11:31380
ou192.168.0.12:31380
. Vous pouvez sélectionner les ports de service auxquels vous souhaitez donner l'accès à cette adresse IP virtuelle.
Mode intégré
Mode manuel
Vérifiez qu'une adresse IP externe a été attribuée à la passerelle d'entrée. Un léger délai peut vous obliger à exécuter et à répéter cette commande jusqu'à ce que le résultat souhaité s'affiche :
kubectl --context="${CTX_CLUSTER1}" get svc istio-ingressgateway -n istio-system
Le résultat attendu est :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s
Configurer l'adresse IP de la passerelle est-ouest
Pour configurer une adresse IP externe pour la passerelle est-ouest, suivez les instructions de l'une des sections ci-dessous en fonction du mode d'équilibrage de charge du cluster :
- Corrigez la configuration du service
istio-eastwestgateway
avec l'adresse IP externe de la passerelle est-ouest :kubectl patch svc istio-eastwestgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "EAST_WEST_GATEWAY_IP"}]'
-
Affichez la configuration du service
istio-eastwestgateway
dans votre interface système : Chacun des ports des passerelles d'Anthos Service Mesh est affiché. Le résultat de la commande ressemble à ce qui suit :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 ...
-
Accordez l'accès à ces ports via votre équilibreur de charge.
Par exemple, le port de servicehttp2
utilise leport
80 et lenodePort
31380. Supposons que les adresses des nœuds de votre cluster d'utilisateur sont192.168.0.10
,192.168.0.11
et192.168.0.12
, et que l'adresse IP virtuelle de votre équilibreur de charge est203.0.113.1
.
Configurez votre équilibreur de charge de sorte que le trafic dirigé vers203.0.113.1:80
soit transféré vers192.168.0.10:31380
,192.168.0.11:31380
ou192.168.0.12:31380
. Vous pouvez sélectionner les ports de service auxquels vous souhaitez donner l'accès à cette adresse IP virtuelle.
Mode intégré
Mode manuel
Vérifiez qu'une adresse IP externe a été attribuée à la passerelle est-ouest. Un léger délai peut vous obliger à exécuter et à répéter cette commande jusqu'à ce que le résultat souhaité s'affiche :
kubectl --context="${CTX_CLUSTER1}" get svc istio-eastwestgateway -n istio-system
Le résultat attendu est :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-eastwestgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s