kubectl apply sur le cluster EKS : du manifest au pod Ready

kubectl apply sur le cluster EKS : du manifest au pod Ready A sequence diagram generated by Archify. apply Deployment fastapi authn : jeton SA ou IAM authz : RBAC du namespace admission du Deployment admis écrit le Deployment created : fin du apply watch : crée le ReplicaSet crée les Pods sans nœud Pod : LimitRange, quota, PSA binding : anti-affinité, taints watch : un Pod pour mon nœud CNI ADD IP 10.42.x pull (rôle IAM du nœud) image deployed-SHA init migrations, puis Ready Synchrone : le client attend Asynchrone : réconciliation Sur le nœud ArgoCD · ou kubectl · Sequence participant ArgoCD ou kubectl API server · géré par AWS · Sequence participant API server géré par AWS Contrôles · RBAC, admission · Sequence participant Contrôles RBAC, admission etcd · géré par AWS · Sequence participant etcd géré par AWS Contrôleurs · Deploy, RS · Sequence participant Contrôleurs Deploy, RS Scheduler · placement · Sequence participant Scheduler placement kubelet · nœud AL2023 · Sequence participant kubelet nœud AL2023 ECR · stack persistent · Sequence participant ECR stack persistent Cilium · CNI · Sequence participant Cilium CNI Legend request return security default message

Le client s'arrête à etcd

  • • ArgoCD ou kubectl reçoit created dès l'écriture dans etcd
  • • Aucun pod n'existe encore à ce moment-là
  • • Le control plane et etcd sont gérés par AWS, invisibles

Personne n'appelle personne

  • • Chaque composant surveille l'API server (watch)
  • • Il compare le demandé et l'existant, puis corrige l'écart
  • • ArgoCD fait pareil entre Git et le cluster

Pièges vécus sur ce projet

  • • LimitRange, quota et PSA jugent les Pods, pas le Deployment : un refus se lit en FailedCreate sur le ReplicaSet
  • • INC-045 : les labels PSA posés par le deploy n'atteignaient pas EKS, le bootstrap les porte
  • • Sous Cilium overlay, les webhooks ESO et cert-manager passent en hostNetwork (#80)