Ingress NGINX
L'addon Ingress NGINX déploie un contrôleur Ingress basé sur NGINX. Il expose les applications du cluster via des ressources Ingress, avec support du TLS, du load balancing et des annotations NGINX.
Dans la console
- À la création, étape Addons, Ingress NGINX est coché par défaut.
- Sur un cluster existant : Modifier > Extensions & Addons, cochez ou décochez Ingress NGINX, puis Enregistrer.
La page de détail du cluster affiche Ingress NGINX dans la section Extensions lorsqu'il est actif.
Exposition
Le contrôleur est exposé par un Service de type LoadBalancer et s'exécute sur les nœuds des groupes marqués Exposé sur internet (IP Publique) (étape Nœuds). Le premier groupe du cluster est toujours exposé. Le PROXY protocol n'est pas activé par défaut.
Le choix de la méthode d'exposition (LoadBalancer ou Proxied) et la déclaration de noms d'hôtes au niveau de l'addon ne sont pas proposés dans la console ; contactez le support.
Surcharger la configuration
Une fois l'addon coché, le champ Configuration Helm (YAML) — optionnel apparaît. La valeur est transmise au chart Helm d'Ingress NGINX, sous la clé ingress-nginx. Par exemple, pour ajuster les ressources et la configuration NGINX :
ingress-nginx:
controller:
resources:
requests:
cpu: 100m
memory: 90Mi
limits:
cpu: 500m
memory: 500Mi
config:
ssl-protocols: "TLSv1.2 TLSv1.3"
Les options disponibles sont décrites dans le chart Helm d'Ingress NGINX.
Utilisation dans le cluster
# IP externe du contrôleur (colonne EXTERNAL-IP)
kubectl get svc -A -l app.kubernetes.io/name=ingress-nginx
# Classe d'Ingress à utiliser dans vos manifestes
kubectl get ingressclass
Exemple d'Ingress :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app
spec:
ingressClassName: nginx
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app
port:
number: 80
Pointez ensuite vos noms de domaine (enregistrement DNS A) vers l'IP externe du contrôleur. Pour le HTTPS, voir Comment déployer un Ingress avec TLS.
Bonnes pratiques
- Dédiez un groupe de nœuds exposé au trafic entrant pour l'isoler de vos charges de calcul.
- Configurez les annotations
nginx.ingress.kubernetes.io/*directement dans vos manifestesIngresspour un contrôle par application. - Activez Ouroboros si des pods du cluster doivent joindre les domaines publics servis par ce même Ingress.