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:
- En el archivo de manifiesto de Ingress, define la anotación
kubernetes.io/ingress.class
. Esta configuración es compatible con los clústeres que ejecutan todas las versiones de GKE. - Configura el campo
ingressClassName
. - Configurar una clase Ingress predeterminada
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
- Consulta más información sobre el balanceo de carga en Google Cloud.
- Consulta cómo configurar Ingress para balanceadores de carga de aplicaciones internos.
- Consulta cómo configurar objetos Ingress para balanceadores de carga de aplicaciones externos.
- Implementa Ingress de GKE con Ingress de NGINX.