Configurar direcciones IP externas para Google Distributed Cloud (solo software) para VMware con balanceadores de carga F5 BIG-IP

La instalación predeterminada de Cloud Service Mesh en Google Distributed Cloud (solo software) para VMware da por hecho que las direcciones IP externas se asignan automáticamente a los servicios LoadBalancer. Esto no ocurre con Google Distributed Cloud (solo software) para VMware con balanceadores de carga F5 BIG-IP. Por este motivo, debes asignar una o varias direcciones IP externas, en función de la configuración de tu malla de servicios:

  • Una dirección IP externa para el recurso de la pasarela de entrada de Cloud Service Mesh. Por ejemplo, la pasarela que usan tus clientes para acceder a tus cargas de trabajo a través de Internet.
  • Otra dirección IP externa para que tus clústeres se comuniquen entre sí si están en redes diferentes dentro de tu malla de servicios. Esto se conoce como pasarela este-oeste.

Configurar la dirección IP de la pasarela de entrada

Para configurar una dirección IP externa para la pasarela de entrada, sigue las instrucciones de una de estas secciones, en función del modo de equilibrio de carga de Google Distributed Cloud (solo software) para VMware:

    Modo integrado

  1. Aplica un parche a la configuración del istio-ingressgateway servicio con la dirección IP externa de la pasarela de entrada:
    kubectl patch svc istio-ingressgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "INGRESS_GATEWAY_IP"}]'
  2. Modo manual

  3. Consulta la configuración del servicio istio-ingressgateway en tu shell:
    kubectl get svc -n istio-system istio-ingressgateway -o yaml
    Se muestran todos los puertos de las pasarelas de Cloud Service Mesh. El resultado del comando es similar al siguiente:
      ...
      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. Expón estos puertos a través de tu balanceador de carga.

    Por ejemplo, el puerto de servicio llamado http2 tiene port 80 y nodePort 31380. Supongamos que las direcciones de los nodos de tu clúster de usuarios son 192.168.0.10, 192.168.0.11 y 192.168.0.12, y que la IP virtual de tu balanceador de carga es 203.0.113.1.

    Configure el balanceador de carga para que el tráfico enviado a 203.0.113.1:80 se reenvíe a 192.168.0.10:31380, 192.168.0.11:31380 o 192.168.0.12:31380. Puedes seleccionar los puertos de servicio que quieras exponer en este VIP.

Confirma que se ha asignado una dirección IP externa a la pasarela de entrada. Puede que haya un ligero retraso, por lo que tendrás que repetir este comando hasta que veas el resultado esperado:

kubectl --context="${CTX_CLUSTER1}" get svc istio-ingressgateway -n istio-system

El resultado esperado es el siguiente:

NAME                    TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)   AGE
istio-ingressgateway   LoadBalancer   10.80.6.124   34.75.71.237   ...       51s

Configurar la dirección IP de la pasarela este-oeste

Para configurar una dirección IP externa para la pasarela este-oeste, sigue las instrucciones de una de estas secciones, en función del modo de balanceo de carga de Google Distributed Cloud (solo software) para VMware:

    Modo integrado

  1. Aplica un parche a la configuración del servicio istio-eastwestgateway con la dirección IP externa de la pasarela este-oeste:
    kubectl patch svc istio-eastwestgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "EAST_WEST_GATEWAY_IP"}]'
  2. Modo manual

  3. Consulta la configuración del servicio istio-eastwestgateway en tu shell:
    kubectl get svc -n istio-system istio-eastwestgateway -o yaml
    Se muestran todos los puertos de las pasarelas de Cloud Service Mesh. El resultado del comando es similar al siguiente:
      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. Expón estos puertos a través de tu balanceador de carga.

    Por ejemplo, el puerto de servicio llamado http2 tiene port 80 y nodePort 31380. Supongamos que las direcciones de los nodos de tu clúster de usuarios son 192.168.0.10, 192.168.0.11 y 192.168.0.12, y que la IP virtual de tu balanceador de carga es 203.0.113.1.

    Configure el balanceador de carga para que el tráfico enviado a 203.0.113.1:80 se reenvíe a 192.168.0.10:31380, 192.168.0.11:31380 o 192.168.0.12:31380. Puedes seleccionar los puertos de servicio que quieras exponer en este VIP.

Confirma que se ha asignado una dirección IP externa a la pasarela este-oeste. Puede que haya un ligero retraso, por lo que tendrás que repetir este comando hasta que veas el resultado esperado:

kubectl --context="${CTX_CLUSTER1}" get svc istio-eastwestgateway -n istio-system

El resultado esperado es el siguiente:

NAME                    TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)   AGE
istio-eastwestgateway   LoadBalancer   10.80.6.124   34.75.71.237   ...       51s

Siguientes pasos