Intro
La checklist d'exploitation Kubernetes Ingress en production avec exemples pratiques est essentielle car déployer un cluster est simple, mais faire tourner Ingress de façon fiable au quotidien ne l'est pas. Ce guide s'adresse aux développeurs, consultants DevOps et équipes techniques de startups qui cherchent une méthode reproductible pour configurer, vérifier et dépanner les ressources Ingress. Il relie les thèmes principaux — opérations Ingress Kubernetes, checklist Ingress, bonnes pratiques Ingress et maintenance Ingress — afin que vous puissiez passer du concept à la vérification locale, puis à l'intégration continue en toute confiance.
L'objectif est pratique : comprendre les composants mobiles, les tester localement et éviter les surprises lorsque le même schéma est réutilisé dans un environnement proche de la production.
Workflow Overview
Commencez par identifier la ressource Ingress que vous allez modifier, le champ exact à changer et la commande qui prouve que la modification fonctionne. Maintenez la boucle courte : modifiez un manifeste, appliquez-le, puis vérifiez l'état observé avant de passer à l'étape suivante.
Les concepts clés incluent le routage basé sur l'hôte, le routage basé sur le chemin, la terminaison TLS via un secret et les points de terminaison de santé. Les éléments connexes tels que le contrôleur Nginx Ingress, cert-manager et les définitions de Service Kubernetes sont importants car un sélecteur de Service mal câblé ou un secret TLS manquant se manifestent par des erreurs 502 ou 503.
Commandes de vérification typiques :
kubectl get ingress -n <namespace> -o wide
kubectl describe ingress <name> -n <namespace>
kubectl get svc <backend-svc> -n <namespace>
kubectl port-forward svc/<backend-svc> -n <namespace> 8080:80
curl -k https://<host>/healthz
Si le secret TLS "tls-example" n'existe pas, kubectl describe ingress affichera "TLS secret not found" et le contrôleur renverra 503 pour les requêtes HTTPS. L'ajout du secret et la réapplication de l'Ingress corrigent l'erreur.
Local Pilot Plan
Exécutez un pilote minimal avant de promouvoir toute modification d'Ingress vers la préproduction ou la production.
- Déployez un petit serveur d'écho (par exemple
kennethreitz/httpbin) en tant que Deployment et exposez-le avec un Service ClusterIP nomméhttpbin. - Créez un manifeste Ingress qui route
httpbin.example.comvers le Service, active TLS avec le secrettls-exampleet définit un chemin/healthzrenvoyant 200.
Exemple d'Ingress (environ 12 lignes) :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: httpbin-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- httpbin.example.com
secretName: tls-example
rules:
- host: httpbin.example.com
http:
paths:
- path: /healthz
pathType: Prefix
backend:
service:
name: httpbin
port:
number: 80
- Appliquez les manifestes, puis exécutez la checklist de vérification :
| Vérification | Commande | Résultat attendu |
|---|---|---|
| Ingress créé | kubectl get ingress httpbin-ingress -n default | Affiche ADDRESS et HOSTS |
| Secret TLS présent | kubectl get secret tls-example -n default | Secret de type kubernetes.io/tls |
| Backend accessible | kubectl port-forward svc/httpbin -n default 8080:80 puis curl -s http://localhost:8080/healthz | Renvoie JSON avec "status":"ok" |
| HTTPS fonctionne | curl -k https://httpbin.example.com/healthz (après entrée dans /etc/hosts) | 200 OK, certificat valide |
Si une ligne échoue, inspectez kubectl describe ingress httpbin-ingress et les logs du contrôleur (kubectl logs -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx) pour identifier l'erreur exacte.
Conclusion
Traitez chaque modification d'Ingress comme une unité testable : écrivez le manifeste, appliquez-le, lancez les commandes ci-dessus et consignez le résultat. La voie la plus sûre consiste à garder les exemples petits, à exécuter la vérification localement et à confirmer le comportement attendu avant d'ajouter d'autres services ou de l'automatisation.
Pour l'étape suivante, choisissez un service, documentez les commandes exactes utilisées pour construire, déployer, inspecter et annuler son Ingress, puis comparez les résultats avec des domaines connexes tels que la topologie des Services Kubernetes, le réglage de Nginx Ingress et la rotation des certificats TLS. Un workflow fiable rend l'échec visible — les logs sont faciles à trouver, les données persistantes survivent aux reconstructions et le comportement local reflète suffisamment la production pour détecter les erreurs tôt.