

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Definir ações para AWS eventos de aplicação de patches do Fargate OS
<a name="fargate-pod-patching"></a>

O Amazon EKS corrige periodicamente o sistema operacional dos nós do AWS Fargate 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 os orçamentos de interrupção de pods (PDBs) apropriados para controlar o número de pods que se tornam inativos ao mesmo tempo.
+ Crie regras do Amazon EventBridge para tratar as remoções com falha antes que os pods sejam excluídos.
+ Reinicie manualmente os pods afetados antes da data de remoção publicada na notificação que você recebe.
+ Crie uma configuração de notificação em Notificações de Usuários da AWS.

O Amazon EKS trabalha em conjunto com a comunidade do 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 mais recente do Kubernetes, disponível no Amazon EKS para a versão do Kubernetes do seu 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 estejam equipados com as mais recentes atualizações de segurança. Dessa maneira, se houver um problema crítico de [Vulnerabilidades e exposições comuns](https://cve.mitre.org/) (CVE), você permanecerá em dia para reduzir os riscos de segurança.

Quando o sistema operacional do AWS Fargate for atualizado, o Amazon EKS enviará uma notificação que inclui os recursos afetados e a data das próximas remoções de pod. Se a data da remoção fornecida for inconveniente, você tem a opção de reiniciar manualmente os pods afetados antes da data de remoção publicada na notificação. Todos os pods criados antes do momento em que você recebe a notificação estão sujeitos a remoção. Consulte a [Documentação do Kubernetes](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_rollout/kubectl_rollout_restart) para obter mais instruções sobre como reiniciar manualmente seus pods.

Para limitar o número de pods inativos ao mesmo tempo quando estes são reciclados, é possível definir orçamentos de interrupção de pods (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. A disponibilidade mínima do seu PDB deve ser inferior a 100%. Para obter mais informações, consulte [Specifying a Disruption Budget for your Application](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) na documentação do Kubernetes.

O Amazon EKS usa a [API de remoção](https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/#eviction-api) 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 falhar, o Amazon EKS enviará um evento à sua conta com detalhes sobre os pods que falharam. É possível atuar na mensagem antes do horário de encerramento programado. O tempo específico varia dependendo da urgência do patch. No momento certo, o Amazon EKS tentará 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 um exemplo de evento recebido quando a remoção do pod apresenta falhas. 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 pods (PDB) para controlar como os pods são removidos. Mais especificamente, 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 uma atualização, é possível ajustar o PDB para outra porcentagem de pods. Para receber esse evento, você deve criar uma regra do Amazon EventBridge na conta AWS e na região AWS à 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html) 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html), 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 Console de gerenciamento da AWS para criar a notificação, em **Regras de evento**, escolha **Elastic Kubernetes Service (EKS)** para o ** nome do serviço AWS** e **EKS Fargate Pod Scheduled Termination** para o **tipo de evento**. Para obter mais informações, consulte [Introdução às Notificações de Usuários da AWS](https://docs.aws.amazon.com/notifications/latest/userguide/getting-started.html) no Guia do usuário das Notificações de Usuários da AWS.

Consulte [Perguntas frequentes: aviso de remoção do Fargate Pod](https://repost.aws/knowledge-center/fargate-pod-eviction-notice) em *AWS re:Post* para ver as perguntas mais frequentes sobre remoções de Pods do EKS.