As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurar o horário de despejo do pod
O tempo de despejo do pod é útil ao projetar resiliência em um cenário de falha no plano de controle ou na zona de disponibilidade. Durante o teste de falha da zona de disponibilidade, em que as sub-redes perdem a conectividade de rede, todos os nós afetados do Amazon EKS perdem a conectividade com os planos de controle do Amazon EKS. Em 1 minuto, todos os nós afetados do Amazon EKS são marcados com o NotReady
status e os endpoints do pod ou EndpointSlices foram removidos dos endpoints de serviço. No entanto, todos os pods em execução nos nós afetados permanecem no running
status por 5 minutos padrão. Em seguida, os pods são marcados como TERMINATING
e novos pods são programados.
O pod-eviction-timeout
parâmetro dentro do Kubernetes Controller Manager é definido por padrão em 5 minutos e pode ser atualizado por meio do plano de controle do Kubernetes. No entanto, como o Amazon EKS é um serviço gerenciado do Kubernetes, não pod-eviction-timeout
está disponível para ser modificado.
Como solução alternativa, você pode usar despejos baseados em contaminação de nósnode.kubernetes.io/unreachable
e tolerationSeconds
os node.kubernetes.io/not-ready
valores de cada implantação. O código a seguir fornece um exemplo:
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