Configura il tempo di sfratto dei pod - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configura il tempo di sfratto dei pod

Il tempo di sfratto del pod è utile quando si progetta la resilienza in uno scenario di guasto del piano di controllo o della zona di disponibilità. Durante il test di errore della zona di disponibilità, in cui le sottoreti perdono la connettività di rete, tutti i nodi Amazon EKS interessati perdono la connettività ai piani di controllo di Amazon EKS. Entro 1 minuto, tutti i nodi Amazon EKS interessati vengono contrassegnati con NotReady lo stato e gli endpoint del pod o sono EndpointSlices stati rimossi dagli endpoint di servizio. Tuttavia, tutti i pod in esecuzione sui nodi interessati rimangono allo running stato predefinito per 5 minuti. Quindi i pod vengono contrassegnati come e ne vengono TERMINATING programmati di nuovi.

Il pod-eviction-timeout parametro all'interno di Kubernetes Controller Manager è impostato di default su 5 minuti e può essere aggiornato tramite il piano di controllo Kubernetes. Tuttavia, poiché Amazon EKS è un servizio Kubernetes gestito, non pod-eviction-timeout è disponibile per essere modificato.

Per una soluzione alternativa, puoi utilizzare gli sfratti basati sulla contaminazione dei nodi. Quando un nodo non funziona o il kubelet smette di pubblicare lo stato, il nodo verrà contaminato da node.kubernetes.io/unreachable. Per impostazione predefinita, i pod tollerano questa contaminazione per 5 minuti, ma puoi sostituirla con una tolleranza di contaminazione standard per più o meno tempo. Per definire una durata di tolleranza personalizzata, allega un codice che specifichi la forma e i valori di ciascuna distribuzione. tolerationSeconds node.kubernetes.io/unreachable node.kubernetes.io/not-ready Il codice seguente fornisce un esempio:

apiVersion: apps/v1 kind: Deployment metadata: name: busybox namespace: default spec: replicas: 2 selector: matchLabels: app: busybox template: metadata: labels: app: busybox spec: tolerations: - key: "node.kubernetes.io/unreachable" operator: "Exists" effect: "NoExecute" tolerationSeconds: 2 - key: "node.kubernetes.io/not-ready" operator: "Exists" effect: "NoExecute" tolerationSeconds: 2 containers: - image: busybox command: - sleep - "3600" imagePullPolicy: IfNotPresent name: busybox restartPolicy: Always