Definir ações para eventos de correção do sistema operacional do AWS Fargate - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Definir ações para eventos de correção do sistema operacional do AWS Fargate

Importante

O AWS Fargate com o Amazon EKS não está disponível para a AWS GovCloud (Leste dos EUA) e AWS GovCloud (Oeste dos EUA).

O Amazon EKS corrige periodicamente o sistema operacional para AWS Fargate nós para mantê-los seguros. Como parte do processo de correção, reciclamos os nós para instalar os patches do sistema operacional. Há tentativas de atualizações de uma forma que gera o menor impacto possível nos seus serviços. Porém, se os Pods não forem removidos com êxito, haverá momentos em que eles deverão ser excluídos. As ações a seguir podem ser executadas para minimizar possíveis interrupções:

  • Defina orçamentos de interrupção de Pod (PDBs) apropriados para controlar o número de Pods que se tornam inativos ao mesmo tempo.

  • Crie regras de do Amazon EventBridge para reagir a remoções com falha antes que os Pods sejam excluídos.

  • Crie uma configuração de notificação em Notificações de Usuários da AWS.

O Amazon EKS trabalha em conjunto com a comunidade Kubernetes para disponibilizar correções de bugs e patches de segurança da maneira mais rápida possível. Todos os Pods do Fargate começam com a versão de patch do Kubernetes mais recente, disponível no Amazon EKS para a versão do Kubernetes do cluster. Se você tiver um Pod com uma versão de patch mais antiga, o Amazon EKS poderá reciclar para atualizá-lo para a versão mais recente. Isso garante que os Pods tenham as atualizações de segurança mais recentes. Assim, se houver um problema crítico de Vulnerabilidades e exposições comuns (CVE), você permanecerá atualizado para reduzir os riscos de segurança.

Para limitar o número de Pods inativos ao mesmo tempo quando os Pods são reciclados, é possível definir orçamentos de interrupção de Pod (PDBs). É possível usar PDBs para definir a disponibilidade mínima com base nos requisitos de cada uma das suas aplicações e, ao mesmo tempo, possibilitar que as atualizações ocorram. Para saber mais, consulte Specifying a Disruption Budget for your Application (Especificar um orçamento de interrupção para a aplicação), na Documentação do Kubernetes.

O Amazon EKS utiliza a API de remoção para drenar o Pod com segurança, respeitando ao mesmo tempo os PDBs definidos para a aplicação. Os pods são removidos por zona de disponibilidade para minimizar os impactos. Se a remoção tiver êxito, o novo Pod receberá o patch mais recente, e nenhuma ação adicional será necessária.

Quando a remoção de um Pod falha, o Amazon EKS envia um evento à sua conta com detalhes sobre os Pods cuja remoção falhou. É possível atuar na mensagem antes do horário de encerramento programado. O tempo específico varia dependendo da urgência do patch. Quando chega a hora, o Amazon EKS tenta remover os Pods novamente. Porém, desta vez, um novo evento não será enviado se a remoção falhar. Se a remoção falhar novamente, os Pods existentes serão excluídos periodicamente, para que novos Pods possam receber o patch mais recente.

Veja a seguir uma amostra de evento recebido quando a remoção do Pod falha. Ele inclui detalhes sobre o cluster, o nome do Pod, o namespace do Pod, o perfil do Fargate e o horário de término agendado.

{ "version": "0", "id": "12345678-90ab-cdef-0123-4567890abcde", "detail-type": "EKS Fargate Pod Scheduled Termination", "source": "aws.eks", "account": "111122223333", "time": "2021-06-27T12:52:44Z", "region": "region-code", "resources": [ "default/my-database-deployment" ], "detail": { "clusterName": "my-cluster", "fargateProfileName": "my-fargate-profile", "podName": "my-pod-name", "podNamespace": "default", "evictErrorMessage": "Cannot evict pod as it would violate the pod's disruption budget", "scheduledTerminationTime": "2021-06-30T12:52:44.832Z[UTC]" } }

Além disso, a existência de vários PDBs associados a um Pod pode causar um evento de falha de remoção. Esse evento retorna a mensagem de erro a seguir.

"evictErrorMessage": "This pod has multiple PodDisruptionBudget, which the eviction subresource does not support",

É possível criar uma ação desejada com base nesse evento. Por exemplo, é possível ajustar o orçamento de interrupção de Pod (PDB) para controlar como os Pods são removidos. De maneira mais específica, suponha que você comece com um PDB que define a porcentagem-alvo de Pods disponíveis. Antes que os Pods sejam encerrados à força durante um upgrade, é possível ajustar o PDB para uma porcentagem diferente de Pods. Para receber esse evento, você deve criar uma regra do Amazon EventBridge no Conta da AWS e no Região da AWS ao qual o cluster pertence. A regra deve utilizar o seguinte Padrão personalizado: Para obter mais informações, consulte Criar regras do Amazon EventBridge que reajam a eventos no Guia do usuário do Amazon EventBridge.

{ "source": ["aws.eks"], "detail-type": ["EKS Fargate Pod Scheduled Termination"] }

Um destino apropriado pode ser definido para o evento capturá-lo. Para acessar uma lista completa de destinos disponíveis, consulte Destinos do Amazon EventBridge, no Guia do usuário do Amazon EventBridge. Também é possível criar uma configuração de notificação em Notificações de Usuários da AWS. Ao usar o AWS Management Console para criar a notificação, em Regras de eventos, escolha Elastic Kubernetes Service (EKS) como Nome do AWS service (Serviço da AWS)EKS Fargate Pod Scheduled Termination para Tipo de evento. Para obter mais informações, consulte Introdução às Notificações de Usuários da AWS no Guia do usuário das Notificações de Usuários da AWS.