En esta página, se describe cómo puedes usar un controlador de Ingress personalizado con Google Kubernetes Engine (GKE).
Usa un controlador de Ingress personalizado con el complemento HttpLoadBalancing
habilitado
Puedes ejecutar un controlador de Ingress personalizado, como nginx-ingress
, si inhabilitas el complemento HttpLoadBalancing
. Esto evita que el controlador de Ingress de GKE procese los recursos de Ingress.
Si deseas ejecutar un controlador de Ingress personalizado con el complemento HttpLoadBalancing
habilitado, por ejemplo, para usar funciones como la subconfiguración y Private Service Connect, puedes usar uno de los siguientes enfoques:
- En el manifiesto de Ingress, configura la anotación
kubernetes.io/ingress.class
. Esta configuración es compatible con clústeres que ejecutan todas las versiones de GKE. - Configura el campo
ingressClassName
. - Configura una clase de Ingress predeterminada
Debes asegurarte de que spec.ingressClassName
no reemplace accidentalmente a ningún proceso. Una operación de actualización que cambia spec.IngressClassName
de un valor válido a una string vacía (""
) hace que el controlador de Ingress de GKE procese el Ingress.
Configura el campo ingressClassName
Puedes usar un controlador de Ingress personalizado si configuras el campo ingressClassName
en el manifiesto de Ingress. En el siguiente manifiesto, se describe un Ingress que especifica el controlador de Ingress nginx
:
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
Esta configuración es compatible con la API de Ingress v1beta1
en las versiones 1.18 a 1.21 de GKE y la API de Ingress v1
en las versiones 1.19 y posteriores de GKE.
Configura una clase de Ingress predeterminada
Puedes configurar una clase de Ingress predeterminada para todos los recursos Ingress en un clúster si creas un recurso IngressClass
con la anotación ingressclass.kubernetes.io/is-default-class
configurada 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 para clústeres que ejecutan la versión 1.19 y posteriores de GKE.
Resumen del comportamiento del controlador de Ingress de GKE
Para los clústeres que ejecutan versiones 1.18 y posteriores de GKE, sin importar si el controlador de Ingress de GKE procesa un Ingress depende 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 Ingress de GKE.
¿Qué sigue?
- Obtén más información sobre el balanceo de cargas en Google Cloud.
- Obtén más información sobre cómo configurar Ingress para balanceadores de cargas de aplicaciones internos.
- Obtén más información sobre cómo configurar Ingress para balanceadores de cargas de aplicaciones externos.
- Implementa Ingress de GKE mediante NGNIX Ingress.