Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Armazenar um sistema de arquivos elástico com o Amazon EFS

Modo de foco
Armazenar um sistema de arquivos elástico com o Amazon EFS - Amazon EKS

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.

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.

Amazon Elastic File System (Amazon EFS) fornece armazenamento de arquivos sem servidor e totalmente elástico para que você possa compartilhar dados de arquivos sem provisionar ou gerenciar a capacidade e a performance do armazenamento. O driver da Amazon EFS Container Storage Interface fornece uma interface CSI que permite que os clusters do Kubernetes executados na AWS gerenciem o ciclo de vida dos sistemas de arquivos do Amazon EFS. Este tópico mostra como implantar o driver da CSI do Amazon EFS no cluster do Amazon EKS.

Considerações

  • O driver da CSI do Amazon EFS não é compatível com imagens de contêiner baseadas no Windows.

  • Você não pode usar o provisionamento dinâmico de volumes persistentes com nós do Fargate, mas pode usar o provisionamento estático.

  • O provisionamento dinâmico requer a versão 1.2 ou posterior do driver. Você pode usar o provisionamento estático para volumes persistentes usando a versão 1.1 do driver em qualquer versão de cluster do Amazon EKS compatível (consulte Compreender o ciclo de vida da versão do Kubernetes no EKS).

  • A versão 1.3.2 ou superior deste driver é compatível com a arquitetura Arm64, inclusive instâncias baseadas no Graviton do Amazon EC2.

  • A versão 1.4.2 ou posterior desse driver suporta o uso de FIPS para montagem de sistemas de arquivos.

  • Anote as cotas de recursos do Amazon EFS. Por exemplo, há uma cota de 1000 pontos de acesso que podem ser criados para cada sistema de arquivos do Amazon EFS. Para obter mais informações, consulte Cotas de recursos do Amazon EFS que não podem ser alteradas.

  • A partir da versão 2.0.0, esse driver deixou de usar stunnel e passou a usar efs-proxy para conexões TLS. Quando efs-proxy é usado, ele abre um número de threads igual a um mais o número de núcleos do nó em que está sendo executado.

  • O driver CSI do Amazon EFS não é compatível com o Amazon EKS Hybrid Nodes.

Pré-requisitos

  • Um provedor AWS Identity and Access Management (IAM) OpenID Connect (OIDC) para o seu cluster. Para determinar se você tem ou para criar uma, consulte Criar um provedor de identidade OIDC do IAM para o cluster.

  • Versão 2.12.3 ou posterior ou versão 1.27.160 ou posterior da AWS Command Line Interface (AWS CLI) instalada e configurada no seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use aws --version | cut -d / -f2 | cut -d ' ' -f1. Os gerenciadores de pacotes, como yum, apt-get ou Homebrew para macOS, geralmente estão várias versões atrás da versão mais recente da AWS CLI. Para instalar a versão mais recente, consulte Instalar e Configuração rápida com aws configure, no Guia do usuário da AWS Command Line Interface. A versão da AWS CLI instalada no AWS CloudShell também pode estar várias versões atrás da versão mais recente. Para atualizá-lo, consulte Instalar a AWS CLI no seu diretório pessoal, no Guia do usuário do AWS CloudShell.

  • A ferramenta da linha de comando kubectl está instalada no seu dispositivo ou no AWS CloudShell. A versão pode ser a mesma ou até uma versão secundária anterior ou posterior à versão do Kubernetes do seu cluster. Por exemplo, se a versão do cluster for a 1.29, você poderá usar o kubectl versão 1.28, 1.29 ou 1.30 com ele. Para instalar ou atualizar o kubectl, consulte Configurar o kubectl e o eksctl.

nota

Um pod em execução no Fargate automaticamente monta um sistema de arquivos do Amazon EFS sem precisar das etapas de instalação manual do driver.

Etapa 1: Criar uma função do IAM

O driver da CSI do Amazon EFS exige permissões do IAM para interagir com seu sistema de arquivos. Crie um perfil do IAM de cluster e associe a política gerenciada do AWS a ele. Para implementar esse procedimento, você pode usar uma das seguintes ferramentas:

nota

As etapas específicas desse procedimento foram escritas para usar o driver como um complemento do Amazon EKS. Para obter detalhes sobre instalações autogerenciadas, consulte Set up driver permission no GitHub.

eksctl

Execute os seguintes comandos para criar um perfil IAM com o eksctl. Substitua my-cluster pelo nome do seu cluster e AmazonEKS_EFS_CSI_DriverRole pelo nome do seu perfil.

export cluster_name=my-cluster export role_name=AmazonEKS_EFS_CSI_DriverRole eksctl create iamserviceaccount \ --name efs-csi-controller-sa \ --namespace kube-system \ --cluster $cluster_name \ --role-name $role_name \ --role-only \ --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \ --approve TRUST_POLICY=$(aws iam get-role --role-name $role_name --query 'Role.AssumeRolePolicyDocument' | \ sed -e 's/efs-csi-controller-sa/efs-csi-*/' -e 's/StringEquals/StringLike/') aws iam update-assume-role-policy --role-name $role_name --policy-document "$TRUST_POLICY"

AWS Management Console

Execute o seguinte para criar um perfil IAM com AWS Management Console.

  1. Abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, escolha Funções.

  3. Na página Roles (Funções), selecione Create role (Criar função).

  4. Na página Select trusted entity (Selecionar entidade confiável), faça o seguinte:

    1. Na seção Trusted entity type (Tipo de entidade confiável), escolha Web identity (Identidade da Web).

    2. Para Identity provider (Provedor de identidade), escolha OpenID Connect provider URL (URL do provedor OpenID Connect) para o seu cluster (conforme mostrado na guia Overview (Visão geral) do Amazon EKS).

    3. Para Audience (Público), escolha sts.amazonaws.com.

    4. Escolha Próximo.

  5. Na página Add permissions (Adicionar permissões), faça o seguinte:

    1. Na caixa Filtrar políticas, digite AmazonEFSCSIDriverPolicy.

    2. Marque a caixa de seleção à esquerda da AmazonEFSCSIDriverPolicy retornada na pesquisa.

    3. Escolha Próximo.

  6. Na página Name, review, and create (Nomear, revisar e criar), faça o seguinte:

    1. Em Nome do perfil, insira um nome exclusivo para o perfil, como AmazonEKS_EFS_CSI_DriverRole.

    2. Em Adicionar tags (Opcional), adicione metadados ao perfil anexando tags como pares chave-valor. Para obter mais informações sobre o uso de tags no IAM, consulte Marcar recursos do IAM no Guia do usuário do IAM.

    3. Selecione Criar perfil.

  7. Depois que a função for criada, escolha a função no console a fim de abri-la para edição.

  8. Escolha a guia Trust relationships (Relacionamentos de confiança) e, em seguida, escolha Edit trust policy (Editar política de confiança).

  9. Encontre a linha semelhante à seguinte:

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"

    Adicione a seguinte linha acima da linha anterior. Substitua region-code pela região da AWS em que seu cluster se encontra. Substitua EXAMPLED539D4633E53DE1B71EXAMPLE pelo ID do provedor OIDC do cluster.

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:efs-csi-*",
  10. Modifique o operador Condition de "StringEquals" para "StringLike".

  11. Escolha Update Policy (Atualizar política) para concluir.

AWS CLI

Execute os seguintes comandos para criar um perfil IAM com a AWS CLI.

  1. Exiba a URL do provedor OIDC do cluster. Substitua my-cluster pelo nome do cluster. Se o resultado do comando for None, revise os Pré-requisitos.

    aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text

    Veja um exemplo de saída abaixo.

    https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
  2. Crie um perfil do IAM que conceda a ação AssumeRoleWithWebIdentity.

    1. Copie o conteúdo a seguir em um arquivo denominado aws-efs-csi-driver-trust-policy.json. Substitua 111122223333 pelo ID da sua conta. Substitua EXAMPLED539D4633E53DE1B71EXAMPLE e region-code pelos valores retornados na etapa anterior.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:efs-csi-*", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
    2. Crie a função. Você pode alterar o AmazonEKS_EFS_CSI_DriverRole para um nome diferente, mas, se fizer isso, certifique-se de alterá-lo também nas etapas posteriores.

      aws iam create-role \ --role-name AmazonEKS_EFS_CSI_DriverRole \ --assume-role-policy-document file://"aws-efs-csi-driver-trust-policy.json"
  3. Anexe a política gerenciada pela AWS necessária à função com o comando a seguir.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \ --role-name AmazonEKS_EFS_CSI_DriverRole

Etapa 2: obter o driver de CSI do Amazon EFS

Recomendamos que você instale o driver da CSI do Amazon EFS por meio do complemento Amazon EKS. Para adicionar um complemento do Amazon EKS ao cluster, consulte Criar um complemento do Amazon EKS. Para obter mais informações sobre complementos, consulte Complementos do Amazon EKS. Se você não conseguir usar o complemento do Amazon EKS, recomendamos que você envie um problema sobre o motivo pelo qual não pode usar o repositório GitHub para roteiro de contêineres.

Como alternativa, se quiser uma instalação autogerenciada do driver CSI do Amazon EFS, consulte Installation no GitHub.

Etapa 3: criar um sistema de arquivos do Amazon EFS

Para criar um sistema de arquivos do Amazon EFS, consulte Criar um sistema de arquivos do Amazon EFS para o Amazon EKS no GitHub.

Etapa 4: implantar uma aplicação de exemplo

Você pode implantar toda uma variedade de aplicações de exemplo e modificá-las conforme necessário. Para obter mais informações, consulte Exemplos no GitHub.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.