Aide-mémoire CKAD
exemple YAML Gateway API k8s
Ingress mélange listener et routage. Gateway API les sépare. Le GatewayClass doit déjà exister.
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: web
namespace: app
spec:
gatewayClassName: nginx
listeners:
- name: http
protocol: HTTP
port: 80
allowedRoutes:
namespaces:
from: Same
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: web
namespace: app
spec:
parentRefs:
- name: web
hostnames:
- web.example
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: web
port: 80
Champs
- gatewayClassName
- Choisit le contrôleur. Même idée qu’ingressClassName. Sans classe, rien n’écoute.
- parentRefs
- À quel Gateway cette route s’attache. name, namespace et sectionName optionnels.
- backendRefs
- Le Service. port est obligatoire. weight pour un split canary.
- PathPrefix
- type : PathPrefix, value : /api. Pas pathType — ça c’est Ingress.
- allowedRoutes
- from : Same est la réponse d’examen habituelle. All laisse les autres namespaces s’attacher.
Pièges
- apiVersion : gateway.networking.k8s.io/v1. Pas networking.k8s.io — ça c’est Ingress.
- HTTPRoute utilise type : PathPrefix, pas pathType. backendRefs[].port est obligatoire.
- Le GatewayClass doit exister. allowedRoutes.from : Same sauf si la question dit autrement.
Doc officielle Gateway API HTTPRoute