Configura direcciones IP externas para GKE en VMware con balanceadores de cargas de BIG-IP de F5

La instalación predeterminada de Anthos Service Mesh en GKE en VMware supone que las direcciones IP externas se asignan de forma automática para los servicios LoadBalancer. Esto no es así en GKE en VMware con balanceadores de cargas de BIG-IP de F5. Debido a esto, debes asignar una o más direcciones IP externas, según la configuración de la malla de servicios:

  • Una dirección IP externa para el recurso de la puerta de enlace de entrada de Anthos Service Mesh, por ejemplo, la que usan tus clientes para acceder a tus cargas de trabajo mediante la Internet.
  • Otra dirección IP externa para que tus clústeres se comuniquen entre sí si existen en redes diferentes dentro de tu malla de servicios. Esto se conoce como la puerta de enlace este-oeste.

Configura la dirección IP de la puerta de enlace de entrada

Si deseas configurar una dirección IP externa para la puerta de enlace de entrada, sigue las instrucciones de una de las siguientes secciones, según el modo de balanceo de cargas de GKE en VMware:

    Modo integrado

  1. Aplica un parche a la configuración del servicio istio-ingressgateway con la dirección IP externa de la puerta de enlace 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. Visualiza la configuración del servicio istio-ingressgateway en tu shell:
    kubectl get svc -n istio-system istio-ingressgateway -o yaml
    Se muestran cada uno de los puertos para las puertas de enlace de Anthos Service Mesh. El resultado del comando se ve de la siguiente manera:
      ...
      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 del balanceador de cargas.

    Por ejemplo, el puerto de servicio llamado http2 tiene port 80 y nodePort 31380. Supongamos que las direcciones de nodos de tu clúster de usuario son 192.168.0.10, 192.168.0.11 y 192.168.0.12, y la VIP del balanceador de cargas es 203.0.113.1.

    Configura el balanceador de cargas 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 deseas exponer en esta VIP determinada.

Confirma que se haya asignado una dirección IP externa a la puerta de enlace de entrada. Es posible que haya una leve demora que requiera que repitas 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

Configura la dirección IP de la puerta de enlace este-oeste

Si deseas configurar una dirección IP externa para la puerta de enlace de este a oeste, sigue las instrucciones de una de las siguientes secciones, según el modo de balanceo de cargas de GKE en VMware:

    Modo integrado

  1. Aplica un parche a la configuración del servicio istio-eastwestgateway con la dirección IP externa para la puerta de enlace 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. Visualiza la configuración del servicio istio-eastwestgateway en tu shell:
    kubectl get svc -n istio-system istio-eastwestgateway -o yaml
    Se muestran cada uno de los puertos para las puertas de enlace de Anthos Service Mesh. El resultado del comando se ve de la siguiente manera:
      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 del balanceador de cargas.

    Por ejemplo, el puerto de servicio llamado http2 tiene port 80 y nodePort 31380. Supongamos que las direcciones de nodos de tu clúster de usuario son 192.168.0.10, 192.168.0.11 y 192.168.0.12, y la VIP del balanceador de cargas es 203.0.113.1.

    Configura el balanceador de cargas 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 deseas exponer en esta VIP determinada.

Confirma que se haya asignado una dirección IP externa a la puerta de enlace este-oeste. Es posible que haya una leve demora que requiera que ejecutes 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

Próximos pasos