Aide-mémoire CKAD
exemple YAML Ingress k8s
Un Ingress n’est que des règles. Un contrôleur (ingressClassName) les applique. Le Service doit déjà exister.
kubectl create ingress web --class=nginx --rule='web.example/=web:80'
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web
namespace: default
spec:
ingressClassName: nginx
rules:
- host: web.example
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80
spec:
ingressClassName: nginx
rules:
- host: web.example
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api
port:
number: 8080
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80
Champs
- pathType
- Obligatoire. Prefix matche /api et /api/foo. Exact = ce chemin seulement.
- number
- backend.service.port.number — pas servicePort.
- ingressClassName
- Choisit le contrôleur. Sans contrôleur, l’objet existe et rien n’est routé.
Pièges
- apiVersion : networking.k8s.io/v1. backend.service.port.number — pas servicePort.
- pathType est obligatoire. Prefix matche /api et /api/foo. Exact ne matche que ce chemin.
- Sans contrôleur, l’objet existe et rien n’est routé. Poser ingressClassName.
Doc officielle Ingress