Restaurar um cluster Amazon EKS - AWS Backup

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á.

Restaurar um cluster Amazon EKS

Você pode restaurar os backups do cluster EKS usando o AWS Backup console ou a CLI. Os backups do EKS são pontos de recuperação compostos que incluem tanto o estado do cluster do EKS quanto os backups de volume persistentes.

AWS Backup oferece suporte a várias experiências de restauração, incluindo restaurações granulares em nível de namespace. As restaurações não são destrutivas e não substituirão nenhum objeto Kubernetes existente no cluster EKS de destino. As restaurações também não substituirão as versões do Kubernetes do cluster EKS de destino.

Os backups do EKS precisam ser restaurados em um cluster EKS de destino, ou seja, um cluster Amazon EKS que tenha sido pré-provisionado. Como parte do fluxo de trabalho de restauração, você pode optar por criar um novo cluster EKS que AWS Backup será criado em seu nome.

nota

AWS Backup fornecerá um conjunto limitado de opções para criar um novo cluster EKS como parte de uma restauração. Para todas as funcionalidades de criação de clusters EKS, os clientes podem criar um novo cluster EKS usando o console EKS ou APIs selecioná-lo como destino de restauração.

Recursos de restauração para o Amazon EKS

Tipo de restauração Destino da restauração Restaurar comportamento
Restauração de cluster existente Restaurar no cluster EKS de origem ou no cluster EKS existente Restaura todos os recursos e volumes persistentes do Kubernetes nos clusters EKS existentes. Todas as restaurações não são destrutivas e os objetos existentes não são substituídos. Para objetos que são ignorados, você pode assinar as Notificações do SNS
Nova restauração de cluster Cria um novo cluster Amazon EKS como parte da sua restauração do EKS Restore cria um novo cluster EKS e restaura todos os recursos e volumes persistentes do Kubernetes no cluster recém-criado
Restauração de namespace Cluster Amazon EKS existente Restaura somente namespaces especificados, seus recursos do Kubernetes e as restaurações de armazenamento persistente correspondentes não são destrutivas e os objetos existentes não são substituídos. Para objetos que são ignorados, você pode assinar as Notificações do SNS
Restauração persistente do armazenamento Depende do armazenamento persistente Restaure o armazenamento persistente individual como restaurações autônomas. Consulte Comportamento de restauração do Amazon EBS, Amazon S3, Amazon EFS.

Permissões

As permissões necessárias dependem do tipo de restauração e do destino de destino.

Considerações antes da restauração

Antes de iniciar um trabalho de restauração do EKS, revise o seguinte. Se você estiver restaurando um backup do EKS que foi copiado em toda a conta ou região, verifique essas considerações antes das restaurações para evitar falhas na restauração.

  1. Funções do IAM: ao restaurar em um cluster diferente, as funções do IAM usadas no cluster de origem (como identidade do pod, IRSA). As configurações do provedor OIDC, etc.) devem estar presentes na conta/região como o cluster de destino.

  2. Garanta a versão e a compatibilidade do EKS: as versões da API dos objetos que você deseja restaurar devem ser da mesma versão (ou a mais próxima possível) e compatíveis com o novo cluster. AWS Backup executará o melhor esforço de restauração entre as versões do EKS, embora possam surgir problemas de compatibilidade ao restaurar entre versões significativamente diferentes.

  3. Classes de armazenamento correspondentes: para restaurações em um cluster EKS existente, certifique-se de que os complementos apropriados do driver de armazenamento CSI estejam instalados antes da restauração

  4. S3 Buckets: ao restaurar um cluster EKS com S3 Buckets, certifique-se de que seu bucket S3 esteja versionado e acessível na conta ou região de destino.

  5. Repositório de imagens: ao restaurar um cluster EKS, certifique-se de que a conta ou região do cluster EKS de destino tenha acesso às imagens que estão sendo referenciadas como parte da restauração. Verifique se seu registro tem permissões suficientes entre regiões e políticas de conta.

  6. Grupos de segurança: os grupos de segurança devem ser pré-criados para ALB, Pod Identities, EKS Node Groups etc. na conta e região de destino se estiver criando um novo cluster EKS como parte de sua restauração

  7. Zonas e nós de disponibilidade do EBS: as zonas de disponibilidade em que você recupera seus volumes do EBS devem ser mapeadas para a zona de disponibilidade de um nó EKS existente

  8. Restaurações não destrutivas: todas as restaurações do EKS não serão destrutivas e não substituirão os objetos Kubernetes da restauração de destino.

  9. Ativar registros de auditoria do EKS: habilite os registros de auditoria do EKS para registro adicional e solução de problemas antes da restauração. Você também pode assinar as notificações do SNS para notificar objetos ignorados ou com falha na restauração.

Configurações do EKS

Ao restaurar o Amazon composto AWS Backup, você escolhe o tipo de restauração e o destino de destino. Você pode optar por restaurar no cluster EKS de origem, em um cluster EKS existente ou criar um novo cluster EKS como destino de restauração. Para novos clusters EKS, você pode optar por usar as mesmas configurações de infraestrutura existentes (por exemplo, VPC, sub-redes) do cluster de backup ou configurar novas. AWS Backup sempre executará uma restauração não destrutiva que não substitua os recursos existentes.

Para restaurações de namespaces, você pode especificar até 5 namespaces para restaurar seletivamente. Somente os recursos com escopo de namespace são restaurados, enquanto os recursos com escopo de cluster são excluídos, exceto os volumes persistentes relacionados.

Como configuração avançada, você pode optar por alterar a ordem de restauração dos objetos do Kubernetes. Por padrão, AWS Backup restaurará todos os objetos do Kubernetes na seguinte ordem:

Recursos de Kubernetes com escopo de cluster

  1. Definições de recursos personalizados

  2. Namespaces (o namespace em si, não os recursos dentro desse namespace)

  3. StorageClasses

  4. PersistentVolumes

Recursos do Kubernetes com escopo de namespace

  1. PersistentVolumeClaims

  2. Segredos

  3. ConfigMaps

  4. ServiceAccounts

  5. LimitRanges

  6. Pods

  7. ReplicaSets

Configurações de armazenamento persistente

Como parte da restauração de backup composta do Amazon EKS, a segunda etapa será configurar suas configurações de armazenamento persistente. Isso variará com base no armazenamento persistente de backup como parte do seu cluster EKS.

Para os snapshots do Amazon EBS, é necessário fornecer uma zona de disponibilidade, na qual o volume do Amazon EBS será restaurado e criado. AWS Backup em seguida, tentará criar o pod EKS na mesma zona de disponibilidade selecionada para que seu volume possa ser remontado em seu cluster EKS como parte da restauração.

Como parte da restauração, AWS Backup remontará seus volumes do Amazon EBS e buckets do Amazon S3 em seu cluster EKS restaurado. Os sistemas de arquivos do Amazon EFS são restaurados para prefixos aleatórios e exigem a criação manual de pontos de acesso após a restauração para serem remontados em seu cluster EKS. AWS Backup não cria pontos de acesso nem monta alvos em seu nome, consulte as orientações aqui para pontos de acesso e alvos de montagem.

Procedimento de restauração do Amazon EKS

Siga estas etapas para restaurar os backups do Amazon EKS usando o AWS Backup console ou AWS CLI:

Console
Para restaurar seu cluster Amazon EKS
  1. Abra o AWS Backup console em https://console.aws.amazon.com/backup.

  2. No painel de navegação, selecione Cofres de Backup.

  3. Escolha o cofre de backup que contém seu backup do Amazon EKS e, em seguida, selecione o ponto de recuperação para seu backup do Amazon EKS.

  4. Escolha Restore.

  5. No painel Opções de restauração, escolha seu tipo de restauração:

    • Restaurar o cluster EKS completo - Restaura todo o ponto de recuperação composto do Amazon EKS

    • Selecione namespaces para restaurar - Restaura até cinco namespaces específicos

  6. Configure o destino de destino:

    • Para restauração de clusters, escolha criar um novo cluster ou usar um cluster existente

    • Para novos clusters, especifique o nome do cluster, a versão do Kubernetes, a configuração da VPC, as funções do IAM, as sub-redes, os grupos de segurança adicionais, as configurações do grupo de nós, os perfis de fargate e as funções do IAM de identidade do pod

    • Para clusters existentes, selecione o cluster de destino no menu suspenso

    • Para restauração do namespace, especifique os nomes do cluster e do namespace de destino

  7. Opcionalmente, defina configurações avançadas para a ordem de restauração personalizada dos recursos do Kubernetes.

  8. Escolha o perfil de restauração do IAM para o trabalho. Se não estiver usando a função padrão, certifique-se de que a função selecionada inclua a PassRole permissão iam:.

  9. Escolha Restaurar backup.

AWS CLI

Use o aws backup start-restore-job comando com metadados específicos do Amazon EKS.

Os metadados necessários dependem do tipo de restauração. Todas as operações de restauração exigem o clusterName parâmetro.

Restaure os pontos de recuperação do Amazon EKS por meio de AWS CLI

Use StartRestoreJob. Você pode especificar os seguintes metadados durante as restaurações do Amazon EKS:

Metadados obrigatórios:

  • clusterName- Nome do cluster para o qual restaurar

Metadados opcionais:

  • newCluster- (verdadeiro/falso) Se devemos criar um novo cluster EKS durante a restauração

    • Se NewCluster for “verdadeiro”, os seguintes campos de metadados se aplicam:

      • eksClusterVersion- Versão K8s desejada do cluster se quiser aumentar a versão do cluster durante a restauração

      • clusterRole- O ARN da função IAM a ser anexada ao cluster EKS criado

      • clusterVpcConfig- VPC/Networking configuração para o cluster EKS criado. Esse campo tem os seguintes campos aninhados:

        • vpcId- A VPC associada ao seu cluster

        • subnetIds- As sub-redes associadas ao seu cluster

        • securityGroupIds- Os grupos de segurança adicionais associados ao seu cluster

      • nodeGroups- Os grupos de nós gerenciados a serem criados no cluster EKS. O NodeGroups para restauração deve ter todos os mesmos grupos de nós desde o momento do backup e ter uma correspondência nodeGroupId.

        • nodeGroupId- O ID do grupo de nós

        • subnetIds- As sub-redes que foram especificadas para o grupo Auto Scaling associado ao seu grupo de nós

        • instanceTypes- Se o grupo de nós não foi implantado com um modelo de execução, esse é o tipo de instância associado ao grupo de nós

        • nodeRole- A função do IAM associada ao seu grupo de nós

        • securityGroupIds- O grupo de segurança ao IDs qual é permitido o acesso SSH aos nós

        • remoteAccessEc2SshKey- O nome da chave Amazon EC2 SSH que fornece acesso à comunicação SSH com os nós no grupo de nós gerenciados

      • fargateProfiles- Os perfis Fargate a serem criados no EKS Cluster. Os Perfis Fargate para restauração devem ter todos os mesmos Perfis Fargate do momento do backup e ter um nome correspondente.

        • name- O nome do perfil do Fargate

        • subnetIds- O número IDs de sub-redes nas quais lançar um Pod

        • podExecutionRoleArn- O ARN da função IAM da função de execução do pod a ser usado em um pod que corresponda aos seletores no perfil do Fargate

      • podIdentityAssociations- As associações de identidade do Pod a serem criadas no EKS Cluster

        • associationId- O ID da Pod Identity Association

        • roleArn- O ARN da função do IAM para a Pod Identity Association

  • kubernetesRestoreOrder- Substitua a ordem em que os manifestos do Kubernetes são restaurados. Esse pedido terá precedência sobre o pedido padrão de restauração do serviço. Isso segue o formatogroup/version/kind or version/kind:

    ["v1/volumes persistentes”, “v1/pods”,” “] customresource/v2/custom

  • namespaceLevelRestore- (verdadeiro/falso) Se você quiser realizar uma restauração no nível do namespace

  • namespaces- Uma lista de namespaces para restaurar se namespaceLevelRestore for “verdadeiro”. Pode fornecer até 5 namespaces para restauração

  • restoreKubernetesManifestsOnly- (verdadeiro/falso) Se você quiser restaurar apenas os arquivos de manifesto do Kubernetes e nenhum sistema de armazenamento persistente (EBS, S3, EFS, etc.)

  • nestedRestoreJobs- Restaure a configuração de metadados de todos os pontos de recuperação aninhados dos sistemas PersistentVolume de armazenamento no ponto de recuperação composto. Este é um mapa de RecoveryPointArn: RestoreMetadata desse ponto de recuperação

Restauração para o cluster existente

aws backup start-restore-job \ --recovery-point-arn "arn:aws:backup:us-west-2:123456789012:recovery-point:composite:eks/my-cluster-20240115" \ --iam-role-arn "arn:aws:iam::123456789012:role/AWSBackupServiceRolePolicyForEKSRestore" \ --metadata '{"clusterName":"existing-cluster","newCluster":false}' \ --resource-type "EKS"

Restaurar para um novo cluster

aws backup start-restore-job \ --recovery-point-arn "arn:aws:backup:us-west-2:123456789012:recovery-point:composite:eks/my-cluster-20240115" \ --iam-role-arn "arn:aws:iam::123456789012:role/AWSBackupServiceRolePolicyForEKSRestore" \ --metadata '{"clusterName":"new-cluster","newCluster":true,"clusterRole":"arn:aws:iam::123456789012:role/EKSClusterRole","eksClusterVersion":"1.33","clusterVpcConfig":"{\"vpcId\":\"vpc-1234\",\"subnetIds\":[\"subnet-1\",\"subnet-2\",\"subnet-3\"],\"securityGroupIds\":[\"sg-123\"]}","nodeGroups":"[{\"nodeGroupId\":\"nodegroup-1\",\"subnetIds\":[\"subnet-1\",\"subnet-2\",\"subnet-3\"],\"nodeRole\":\"arn:aws:iam::123456789012:role/EKSNodeGroupRole\",\"instanceTypes\":[\"t3.small\"]}]","fargateProfiles":"[{\"name\":\"fargate-profile-1\",\"subnetIds\":[\"subnet-1\",\"subnet-2\",\"subnet-3\"],\"podExecutionRoleArn\":\"arn:aws:iam::123456789012:role/EKSFargateProfileRole\"}]"}' \ --resource-type "EKS"

Depois de iniciar o trabalho de restauração, use describe-restore-job para monitorar o progresso:

aws backup describe-restore-job --restore-job-id restore-job-id

Você pode se inscrever em Eventos de Notificação de objetos falhados e ignorados para restauração. Para obter mais informações, consulte Opções de notificação com AWS Backup.