In questa pagina viene descritto come utilizzare un controller Ingress personalizzato con Google Kubernetes Engine (GKE).
Utilizzare un controller Ingress personalizzato con il componente aggiuntivo HttpLoadBalancing
abilitato
Puoi eseguire un controller Ingress personalizzato, ad esempio nginx-ingress
, disattivando il componente aggiuntivo HttpLoadBalancing
. In questo modo, il controller GKE Ingress
non elabora le risorse Ingress.
Se vuoi eseguire un controller Ingress personalizzato con il plug-in HttpLoadBalancing
attivo, ad esempio per utilizzare funzionalità come il sottoinsieme e Private Service Connect, puoi utilizzare uno dei seguenti approcci:
- Nel manifest Ingress, imposta il parametro
kubernetes.io/ingress.class
annotazione. Questa configurazione è supportata per cluster che eseguono tutte le versioni GKE. - Configura il campo
ingressClassName
. - Configurare una classe Ingress predefinita
Devi assicurarti che spec.ingressClassName
non venga sovrascritto accidentalmente da
in qualsiasi processo. Un'operazione di aggiornamento che modifica spec.IngressClassName
da un
valore valido a una stringa vuota (""
) fa sì che GKE Ingress
per elaborare l'oggetto Ingress.
Configura il campo ingressClassName
Puoi utilizzare un controller Ingress personalizzato impostando il ingressClassName
campo nel manifest Ingress. Il manifest seguente descrive un Ingress che specifica il nginx
controller 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
Questa configurazione è supportata con l'API Ingress v1beta1
in
GKE dalla 1.18 alla 1.21 e l'API Ingress v1
in
GKE 1.19 e versioni successive.
Configurare una classe Ingress predefinita
Puoi configurare un'entità Ingress predefinita per tutte le risorse Ingress in un cluster creando una risorsa IngressClass
con l'annotazione ingressclass.kubernetes.io/is-default-class
impostata su 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
Questa configurazione è disponibile per i cluster che eseguono GKE versioni 1.19 e successive.
Riepilogo del comportamento del controller GKE Ingress
Per i cluster che eseguono GKE 1.18 e versioni successive, il fatto che il controller Ingress di GKE elabori o meno un Ingress dipende dal valore dell'annotazione kubernetes.io/ingress.class
e del campo ingressClassName
nel manifest di Ingress. Per ulteriori informazioni, vedi
Comportamento del controller Ingress GKE.
Passaggi successivi
- Scopri di più sul bilanciamento del carico in Google Cloud.
- Scopri come configurare Ingress per i bilanciatori del carico delle applicazioni interni.
- Scopri come configurare Ingress per i bilanciatori del carico delle applicazioni esterni.
- Implementa GKE Ingress utilizzando NGNIX Ingress.