es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

As an AI language model, I can provide you with a translation suggestion. Here’s one way to translate the phrase “Bind Kubernetes Istio Ingress Gateway to local ports 80 and 443” into Spanish: “Enlazar la puerta de entrada de Kubernetes Istio al puerto local 80 y 443.”

Logré instalar Kubernetes 1.22, Longhorn, Kiali, Prometheus e Istio 1.12 (perfil=minimal) en un servidor dedicado en un proveedor de hosting (hetzner).

Luego procedí a probar httpbin con un gateway de ingreso de Istio siguiendo el tutorial de Istio. Tuve algunos problemas para hacerlo accesible desde internet (configuré HAProxy para redirigir el puerto local 80 al puerto dinámico asignado en Kubernetes, en mi caso el puerto 31701/TCP).

¿Cómo puedo hacer que Kubernetes esté directamente disponible en el puerto 80 (y 443) de la interfaz de hardware de bare metal?

Pensé que encontré la solución con MetalLB, pero no puedo hacer que funcione, así que creo que no está destinado a ese caso de uso. (Intenté configurar la EXTERNAL-IP con la IP de la interfaz de hardware de bare metal, pero eso no parece funcionar).

Mi configuración de HAProxy no está funcionando correctamente en este momento para mi tráfico SSL (con cert-manager en Kubernetes), pero antes de seguir investigando eso, quiero asegurarme. ¿Realmente es así como se supone que se debe enrutar el tráfico hacia Kubernetes con una configuración de gateway de Istio en bare metal?

Encontré este enlace, pero no tengo un balanceador de carga externo ni mi proveedor de hosting me proporciona uno para usar.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para hacer que Kubernetes esté directamente disponible en el puerto 80 y 443 de la interfaz de metal desnudo, puedes utilizar una combinación de MetalLB y un controlador de ingreso, como la puerta de ingreso de Istio.

    Primero, instala MetalLB en tu clúster siguiendo las instrucciones de instalación proporcionadas en su página web. Después de instalarlo, crea un archivo de configuración para MetalLB que especifique el rango de direcciones IP a utilizar para los servicios de balanceo de carga:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: metallb-system
      name: config
    data:
      config: |
        address-pools:
        - name: default
          protocol: layer2
          addresses:
          - <rango de="" direcciones="" ip="">
    

    Reemplaza <rango de="" direcciones="" ip=""> con el rango de direcciones IP disponible en tu interfaz de metal desnudo.

    A continuación, instala un controlador de ingreso, como la puerta de ingreso de Istio, y expónlo con un servicio de balanceo de carga. Aquí tienes un archivo YAML de ejemplo para crear un servicio de puerta de ingreso de Istio:

    apiVersion: v1
    kind: Service
    metadata:
      name: istio-ingressgateway
      namespace: istio-system
      annotations:
        metallb.universe.tf/address-pool: default
    spec:
      type: LoadBalancer
      selector:
        istio: ingressgateway
      ports:
      - name: http
        port: 80
        targetPort: 8080
      - name: https
        port: 443
        targetPort: 8443
    

    Este archivo YAML crea un servicio de puerta de ingreso de Istio con un tipo LoadBalancer y lo asigna al pool de direcciones IP predeterminado creado anteriormente con MetalLB.

    Después de implementar este servicio, automáticamente asignará una dirección IP externa del rango de direcciones IP especificado en el archivo de configuración de MetalLB. Luego puedes configurar tu HAProxy para redirigir el tráfico a esta dirección IP externa en los puertos 80 y 443.

    Ten en cuenta que quizás también necesites configurar tu cortafuegos para permitir el tráfico en estos puertos.

Comments are closed.