Cette page explique comment utiliser un contrôleur d'entrée personnalisé avec Google Kubernetes Engine (GKE).
Utiliser un contrôleur d'entrée personnalisé avec le module complémentaire HttpLoadBalancing
activé
Vous pouvez exécuter un contrôleur d'entrée personnalisé, tel que nginx-ingress
, en désactivant le module complémentaire HttpLoadBalancing
. Cela empêche le contrôleur GKE Ingress de traiter les ressources Ingress.
Si vous souhaitez exécuter un contrôleur d'entrée personnalisé avec le module complémentaire HttpLoadBalancing
activé, par exemple pour utiliser des fonctionnalités telles que sous-paramètre et Private Service Connect, vous pouvez utiliser l'une des approches suivantes:
- Dans le fichier manifeste Ingress, définissez l'annotation
kubernetes.io/ingress.class
. Cette configuration est compatible avec les clusters exécutant toutes les versions de GKE. - Configurez le champ
ingressClassName
. - Configurer une classe Ingress par défaut
Vous devez vous assurer que spec.ingressClassName
n'est pas accidentellement écrasé par un processus. Une opération de mise à jour qui transforme une valeur valide spec.IngressClassName
en une chaîne vide (""
) oblige le contrôleur GKE Ingress à traiter la ressource Ingress.
Configurer le champ ingressClassName
Vous pouvez utiliser un contrôleur d'entrée personnalisé en définissant le champ ingressClassName
dans le fichier manifeste d'entrée. Le fichier manifeste suivant décrit une entrée spécifiant le contrôleur d'entrée 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
Cette configuration est compatible avec l'API v1beta1
Ingress dans les versions 1.18 à 1.21 de GKE, et avec l'API Ingress v1
dans les versions 1.19 et ultérieures de GKE.
Configurer une classe Ingress par défaut
Vous pouvez configurer une classe Ingress par défaut pour toutes les ressources Ingress d'un cluster en créant une ressource IngressClass
avec l'annotation ingressclass.kubernetes.io/is-default-class
définie sur 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
Cette configuration est disponible pour les clusters exécutant les versions 1.19 et ultérieures de GKE.
Résumé du comportement du contrôleur GKE Ingress
Pour les clusters exécutant les versions 1.18 et ultérieures de GKE, le fait que le contrôleur d'entrée GKE traite ou non une entrée dépend de la valeur de l'annotation kubernetes.io/ingress.class
et du champ ingressClassName
dans le fichier manifeste d'entrée. Pour en savoir plus, consultez la page Comportement du contrôleur GKE Ingress.
Étapes suivantes
- Apprenez-en plus sur l'équilibrage de charge dans Google Cloud.
- Découvrez comment configurer Ingress pour les équilibreurs de charge d'application internes.
- Découvrez comment configurer Ingress pour les équilibreurs de charge d'application externes.
- Implémentez GKE Ingress à l'aide de NGNIX Ingress.