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.

Une tour vivante parmi des tours noires identiques sous la pluie. Une tour vivante parmi des tours noires identiques sous la pluie.
Créer
kubectl create ingress web --class=nginx --rule='web.example/=web:80'
Ingress
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
Deux chemins
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

S’entraîner sur un cluster réel →