Configurer des adresses IP externes pour Google Distributed Cloud

L'installation par défaut de Cloud Service Mesh sur Google Distributed Cloud suppose que les adresses IP externes sont automatiquement attribuées aux services LoadBalancer. Ce n'est pas le cas dans Google Distributed Cloud. 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 de Cloud Service Mesh, par exemple la passerelle que vos clients utilisent pour 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 l'une des ci-dessous, en fonction de vos Mode d'équilibrage de charge cloud distribué de Google:

    Mode intégré

  1. 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"}]'
  2. Mode manuel

  3. Affichez la configuration du service istio-ingressgateway dans votre interface système :
    kubectl get svc -n istio-system istio-ingressgateway -o yaml
    Chacun des ports des passerelles de Cloud Service Mesh est affiché. Le résultat de la commande ressemble à ce qui suit :
      ...
      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
      ...
  4. Accordez l'accès à ces ports via votre équilibreur de charge.

    Par exemple, le port de service http2 utilise le port 80 et le nodePort 31380. Supposons que les adresses des nœuds de votre cluster d'utilisateur sont 192.168.0.10, 192.168.0.11 et 192.168.0.12, et que l'adresse IP virtuelle de votre équilibreur de charge est 203.0.113.1.

    Configurez votre équilibreur de charge de sorte que le trafic dirigé vers 203.0.113.1:80 soit transféré vers 192.168.0.10:31380, 192.168.0.11:31380 ou 192.168.0.12:31380. Vous pouvez sélectionner les ports de service auxquels vous souhaitez donner l'accès à cette adresse IP virtuelle.

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 l'une des sections ci-dessous en fonction du mode d'équilibrage de charge Google Distributed Cloud :

    Mode intégré

  1. 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"}]'
  2. Mode manuel

  3. Affichez la configuration du service istio-eastwestgateway dans votre interface système :
    kubectl get svc -n istio-system istio-eastwestgateway -o yaml
    Chacun des ports des passerelles de Cloud Service Mesh est affiché. Le résultat de la commande ressemble à ce qui suit :
      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
      ...
  4. Accordez l'accès à ces ports via votre équilibreur de charge.

    Par exemple, le port de service http2 utilise le port 80 et le nodePort 31380. Supposons que les adresses des nœuds de votre cluster d'utilisateur sont 192.168.0.10, 192.168.0.11 et 192.168.0.12, et que l'adresse IP virtuelle de votre équilibreur de charge est 203.0.113.1.

    Configurez votre équilibreur de charge de sorte que le trafic dirigé vers 203.0.113.1:80 soit transféré vers 192.168.0.10:31380, 192.168.0.11:31380 ou 192.168.0.12:31380. Vous pouvez sélectionner les ports de service auxquels vous souhaitez donner l'accès à cette adresse IP virtuelle.

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

Étape suivante