Usar un controlador de Ingress personalizado


En esta página se describe cómo puedes usar un controlador Ingress personalizado con Google Kubernetes Engine (GKE).

Usar un controlador de Ingress personalizado con el complemento HttpLoadBalancing habilitado

Puedes ejecutar un controlador de Ingress personalizado, como nginx-ingress, inhabilitando el complemento HttpLoadBalancing. De esta forma, el controlador de entrada de GKE no procesará los recursos de entrada.

Si quieres ejecutar un controlador de Ingress personalizado con el complemento HttpLoadBalancing habilitado, por ejemplo, para usar funciones como subconjuntos y Private Service Connect, puedes usar uno de los siguientes métodos:

Debes asegurarte de que spec.ingressClassName no se sobrescriba por error en ningún proceso. Una operación de actualización que cambia spec.IngressClassName de un valor válido a una cadena vacía ("") provoca que el controlador de Ingress de GKE procese el Ingress.

Configurar el campo ingressClassName

Puedes usar un controlador de Ingress personalizado definiendo el campo ingressClassName en el manifiesto de Ingress. El siguiente manifiesto describe un Ingress que especifica el nginx controlador de Ingress:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
 name: cafe-ingress
spec:
 ingressClassName: nginx
 tls:
 - hosts:
   - cafe.example.com
   secretName: cafe-secret
 rules:
 - host: cafe.example.com
spec.ingressClassName

Esta configuración es compatible con la API Ingress v1beta1 en las versiones de GKE de 1.18 a 1.21 y con la API Ingress v1 en las versiones de GKE 1.19 y posteriores.

Configurar una clase Ingress predeterminada

Puedes configurar una clase Ingress predeterminada para todos los recursos Ingress de un clúster creando un recurso IngressClass con la anotación ingressclass.kubernetes.io/is-default-class definida como true:

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: nginx-public
  annotations:
    ingressclass.kubernetes.io/is-default-class: "true"
spec:
  controller: k8s.io/ingress-nginx

Esta configuración está disponible en los clústeres que ejecutan GKE 1.19 y versiones posteriores.

Resumen del comportamiento del controlador de Ingress de GKE

En los clústeres que ejecutan las versiones 1.18 y posteriores de GKE, el controlador de Ingress de GKE procesa un objeto Ingress en función del valor de la anotación kubernetes.io/ingress.class y del campo ingressClassName en el manifiesto de Ingress. Para obtener más información, consulta Comportamiento del controlador de entrada de GKE.

Siguientes pasos