Ajudar a melhorar esta página
Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.
Acessar objetos do Amazon S3 com o driver CSI do Mountpoint para Amazon S3
Com o driver Container Storage Interface (CSI) do Mountpoint para Amazon S3
Considerações
-
O Mountpoint para driver da CSI do Amazon S3 não é compatível com imagens de contêiner baseadas no Windows.
-
O driver CSI do Mountpoint para Amazon S3 não é atualmente compatível com o Amazon EKS Hybrid Nodes.
-
O driver Mountpoint for Amazon S3 CSI não é compatível com o AWS Fargate. No entanto, os contêineres que executados no Amazon EC2 (com o Amazon EKS ou com uma instalação personalizada do Kubernetes) são compatíveis.
-
O Mountpoint para driver da CSI do Amazon S3 é compatível somente com provisionamento estático. Não há suporte ao provisionamento dinâmico ou à criação de novos buckets.
nota
O provisionamento estático refere-se ao uso de um bucket do Amazon S3 existente que é especificado como o
bucketName
novolumeAttributes
no objetoPersistentVolume
. Para obter mais informações, consulte Provisionamento estáticono GitHub. -
Os volumes montados com o Mountpoint para driver da CSI do Amazon S3 não oferecem suporte a todos os recursos do sistema de arquivos POSIX. Para obter detalhes sobre o comportamento do sistema de arquivos, consulte Mountpoint for Amazon S3 file system behavior
em GitHub.
Pré-requisitos
-
Um provedor existente do AWS Identity and Access Management (IAM) OpenID Connect (OIDC) para o cluster. Para determinar se você tem ou para criar uma, consulte Criar um provedor OIDC do IAM para o cluster.
-
Versão 2.12.3 ou posterior do AWS CLI instalada e configurada em seu dispositivo ou AWS CloudShell.
-
A ferramenta da linha de comando
kubectl
está instalada no seu dispositivo ou no AWS CloudShell. A versão pode ser idêntica ou até uma versão secundária anterior ou posterior à versão Kubernetes do seu cluster. Por exemplo, se a versão do cluster for a1.29
, você poderá usar okubectl
versão1.28
,1.29
ou1.30
com ele. Para instalar ou atualizar okubectl
, consulte Configurar o kubectl e o eksctl.
Criar uma política do IAM
O Mountpoint para driver da CSI do Amazon S3 exige permissões do Amazon S3 para interagir com seu sistema de arquivos. Esta seção mostra como criar uma política do IAM que conceda as permissões necessárias.
O exemplo de política a seguir segue as recomendações de permissão do IAM para Mountpoint. Como alternativa, você pode usar a política gerenciada AWS AmazonS3FullAccess
Para obter mais informações sobre as permissões recomendadas para Mountpoint, consulte Permissões de IAM do Mountpoint
-
Abra o console do IAM, em https://console.aws.amazon.com/iam/
. -
No painel de navegação à esquerda, escolha Políticas.
-
Na página Políticas, escolha Criar política.
-
Em Editor de políticas, escolha JSON.
-
No Editor de políticas, copie e cole o seguinte:
Importante
Substitua
amzn-s3-demo-bucket1
pelo nome do seu próprio bucket do Amazon S3.{ "Version": "2012-10-17", "Statement": [ { "Sid": "MountpointFullBucketAccess", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ] }, { "Sid": "MountpointFullObjectAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] } ] }
Os buckets de diretório, introduzidos com a classe de armazenamento Amazon S3 Express One Zone, usam um mecanismo de autenticação diferente dos buckets de uso geral. Em vez de usar ações
s3:*
, você deve usar a açãos3express:CreateSession
. Para obter mais informações sobre os buckets do diretório, consulte Buckets de diretório no Guia do usuário do Amazon S3.Abaixo está um exemplo de política de privilégio mínimo que você usaria para um bucket de diretório.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3express:CreateSession", "Resource": "arn:aws:s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket1--usw2-az1--x-s3" } ] }
-
Escolha Próximo.
-
Na página Analisar, atribua um nome à sua política. Esta demonstração usa o nome
AmazonS3CSIDriverPolicy
. -
Escolha Criar política.
Criar um perfil do IAM
O Mountpoint para driver da CSI do Amazon S3 exige permissões do Amazon S3 para interagir com seu sistema de arquivos. Esta seção mostra como criar um perfil do IAM para delegar essas permissões. Para criar esse perfil, você pode usar uma destas ferramentas:
nota
A política do IAM AmazonS3CSIDriverPolicy
foi criada na seção anterior.
eksctl
Para criar seu perfil do IAM do Mountpoint para o driver da CSI do Amazon S3 com o eksctl
Para criar o perfil do IAM e a conta de serviço do Kubernetes, execute os comandos a seguir. Esses comandos também anexam a política do IAM AmazonS3CSIDriverPolicy
ao perfil, anotam a conta de serviço do Kubernetes (s3-csi-controller-sa
) com o nome do recurso da Amazon (ARN) do perfil do IAM e adicionam o nome da conta de serviço do Kubernetes à política de confiança para o perfil do IAM.
CLUSTER_NAME=my-cluster REGION=region-code ROLE_NAME=AmazonEKS_S3_CSI_DriverRole POLICY_ARN=AmazonEKS_S3_CSI_DriverRole_ARN eksctl create iamserviceaccount \ --name s3-csi-driver-sa \ --namespace kube-system \ --cluster $CLUSTER_NAME \ --attach-policy-arn $POLICY_ARN \ --approve \ --role-name $ROLE_NAME \ --region $REGION \ --role-only
AWS Management Console
-
Abra o console do IAM, em https://console.aws.amazon.com/iam/
. -
No painel de navegação à esquerda, escolha Funções.
-
Na página Roles (Funções), selecione Create role (Criar função).
-
Na página Select trusted entity (Selecionar entidade confiável), faça o seguinte:
-
Na seção Trusted entity type (Tipo de entidade confiável), escolha Web identity (Identidade da Web).
-
Em Provedor de identidade, escolha URL do provedor OpenID Connect para o cluster (conforme mostrado na guia Visão geral do Amazon EKS).
Se não forem exibidos URLs, revise os Pré-requisitos.
-
Para Audience (Público), escolha
sts.amazonaws.com
. -
Escolha Próximo.
-
-
Na página Add permissions (Adicionar permissões), faça o seguinte:
-
Na caixa Filter policies (Políticas de filtro) insira AmazonS3CSIDriverPolicy.
nota
Essa política foi criada na seção anterior.
-
Marque a caixa de seleção à esquerda do resultado
AmazonS3CSIDriverPolicy
retornado na pesquisa. -
Escolha Próximo.
-
-
Na página Name, review, and create (Nomear, revisar e criar), faça o seguinte:
-
Em Role name (Nome da função), insira um nome exclusivo para a função, como AmazonEKS_S3_CSI_DriverRole.
-
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.
-
Selecione Criar perfil.
-
-
Depois que a função for criada, escolha a função no console a fim de abri-la para edição.
-
Escolha a guia Trust relationships (Relacionamentos de confiança) e, em seguida, escolha Edit trust policy (Editar política de confiança).
-
Encontre a linha semelhante à seguinte:
"oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
Adicione uma vírgula ao final da linha anterior e, em seguida, adicione a linha a seguir após ela. Substitua
region-code
pela região da AWS em que seu cluster se encontra. SubstituaEXAMPLED539D4633E53DE1B71EXAMPLE
pelo ID do provedor OIDC do cluster."oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa"
-
Certifique-se de que o operador
Condition
esteja definido como"StringEquals"
. -
Escolha Update Policy (Atualizar política) para concluir.
AWS CLI
-
Visualize o URL do provedor OIDC do cluster. Substitua
my-cluster
pelo nome do cluster. Se o resultado do comando forNone
, 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
-
Crie o perfil do IAM, concedendo à conta de serviço do Kubernetes a ação
AssumeRoleWithWebIdentity
.-
Copie o conteúdo a seguir em um arquivo denominado
aws-s3-csi-driver-trust-policy.json
. Substitua111122223333
pelo ID da sua conta. SubstituaEXAMPLED539D4633E53DE1B71EXAMPLE
eregion-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": { "StringEquals": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
-
Crie a função. Você pode alterar o
AmazonEKS_S3_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_S3_CSI_DriverRole \ --assume-role-policy-document file://"aws-s3-csi-driver-trust-policy.json"
-
-
Anexe a política do IAM criada anteriormente ao perfil executando o comando a seguir.
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonS3CSIDriverPolicy \ --role-name AmazonEKS_S3_CSI_DriverRole
nota
A política do IAM
AmazonS3CSIDriverPolicy
foi criada na seção anterior. -
Pule esta etapa se você estiver instalando o driver como um complemento do Amazon EKS.. Para instalações autogerenciadas do driver, crie contas de serviço do Kubernetes que detalhem o ARN do perfil do IAM que você criou.
-
Salve o conteúdo a seguir em um arquivo denominado
mountpoint-s3-service-account.yaml
. Substitua111122223333
pelo ID da sua conta.--- apiVersion: v1 kind: ServiceAccount metadata: labels: app.kubernetes.io/name: aws-mountpoint-s3-csi-driver name: mountpoint-s3-csi-controller-sa namespace: kube-system annotations: eks.amazonaws.com/role-arn: arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
-
Crie a conta de serviço Kubernetes no cluster: A conta de serviço Kubernetes (
mountpoint-s3-csi-controller-sa
) é anotada com o perfil IAM que você criou chamadaAmazonEKS_S3_CSI_DriverRole
.kubectl apply -f mountpoint-s3-service-account.yaml
nota
Quando você implanta o plug-in nesse procedimento, ele cria e é configurado para usar uma conta de serviço chamada
s3-csi-driver-sa
.
-
Instalar o Mountpoint para o driver CSI do Amazon S3
É possível instalar o Mountpoint para driver da CSI do Amazon S3 via complemento Amazon EKS. Você pode usar as seguintes ferramentas para adicionar o complemento ao seu cluster:
Você também pode instalar o Mountpoint para driver da CSI do Amazon S3 como uma instalação autogerenciada. Para obter instruções sobre como realizar uma instalação autogerenciada, consulte Instalação
A partir da versão v1.8.0
, é possível configurar taints para tolerar os Pods do driver da CSI. Para fazer isso, especifique um conjunto personalizado de taints para tolerar node.tolerations
ou tolere todos os taints com node.tolerateAllTaints
. Para obter mais informações, consulte Taints e Tolerâncias
eksctl
Para adicionar o complemento do Amazon S3 CSI usando eksctl
Execute o seguinte comando: Substitua my-cluster
pelo nome do seu cluster, 111122223333
pelo ID da sua conta e AmazonEKS_S3_CSI_DriverRole
pelo nome do perfil do IAM criado anteriormente.
eksctl create addon --name aws-mountpoint-s3-csi-driver --cluster my-cluster \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole --force
Se você remover a opção --force
e alguma das configurações do complemento do Amazon EKS entrar em conflito com as configurações existentes, a atualização do complemento do Amazon EKS falhará e você receberá uma mensagem de erro para ajudá-lo a resolver o conflito. Antes de especificar essa opção, certifique-se de que o complemento Amazon EKS não gerencie as configurações que você precisa gerenciar, pois essas configurações são substituídas por essa opção. Para obter mais informações sobre outras opções para essa configuração, consulte Addonseksctl
. Para obter mais informações sobre o gerenciamento de campos do Amazon EKS Kubernetes, consulte Determinar os campos que podem ser personalizados para os complementos do Amazon EKS.
É possível personalizar o eksctl
por meio de arquivos de configuração. Para obter mais informações, consulte Trabalhar com valores de configuraçãoeksctl
. O seguinte exemplo de mostra como tolerar todos os taints.
# config.yaml ... addons: - name: aws-mountpoint-s3-csi-driver serviceAccountRoleARN: arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole configurationValues: |- node: tolerateAllTaints: true
AWS Management Console
-
Abra o console do Amazon EKS
. -
No painel de navegação à esquerda, escolha Clusters.
-
Escolha o nome do cluster para o qual você deseja configurar o Mountpoint para o complemento CSI do Amazon S3.
-
Escolha a guia Add-ons (Complementos).
-
Escolha Obter mais complementos.
-
Na página Selecionar complementos, faça o seguinte:
-
Na seção Amazon EKS-complementos, marque a caixa de seleção Mountpoint for Amazon S3 CSI Driver.
-
Escolha Próximo.
-
-
Na página Definir as configurações dos complementos selecionados:
-
Selecione a Versão que deseja usar.
-
Em Selecionar perfil do IAM, selecione o nome do perfil do IAM ao qual você anexou o Mountpoint para a política do IAM do driver de CSI do Amazon S3.
-
(Opcional) Atualize o Método de resolução de conflitos após expandir as Configurações opcionais. Se você selecionar Substituir, uma ou mais configurações do complemento existente poderão ser substituídas pelas configurações do complemento do Amazon EKS. Se você não habilitar esta opção e houver um conflito com suas configurações existentes, a operação falhará. É possível usar a mensagem de erro resultante para solucionar o conflito. Antes de selecionar essa opção, certifique-se de que o complemento do Amazon EKS não gerencie as configurações que você precisa autogerenciar.
-
(Opcional) Configure as tolerâncias no campo Valores de configuração depois de expandir as Configurações opcionais.
-
Escolha Próximo.
-
-
Na página Adicionar tags, escolha Criar. Depois que a instalação do complemento for concluída, você verá o complemento instalado.
AWS CLI
Para adicionar o complemento Mountpoint for Amazon S3 CSI usando a CLI AWS
Execute o seguinte comando: Substitua my-cluster
pelo nome do cluster, 111122223333
pelo ID da conta e AmazonEKS_S3_CSI_DriverRole
pelo nome do perfil criada anteriormente.
aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
É possível personalizar o comando com o sinalizador --configuration-values
. O exemplo alternativo a seguir mostra como tolerar todos os taints.
aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole \ --configuration-values '{"node":{"tolerateAllTaints":true}}'
Configurar o Mountpoint para o Amazon S3
Na maioria dos casos, você pode configurar o Mountpoint para o Amazon S3 com apenas um nome de bucket. Para obter instruções sobre como configurar o Mountpoint para o Amazon S3, consulte Configurando o Mountpoint para o Amazon S3
Implantar uma aplicação de exemplo
É possível implantar provisionamento estático para o driver em um bucket do Amazon S3 existente. Para obter mais informações, consulte Provisionamento estático
Remover o Mountpoint do driver CSI do Amazon S3
Você tem duas opções ao remover um complemento do Amazon EKS.
-
Preserve add-on software on your cluster (Preservar software de complemento no cluster): esta opção remove o gerenciamento do Amazon EKS de qualquer configuração. Também remove a capacidade do Amazon EKS de notificar você sobre atualizações e de atualizar automaticamente o complemento do Amazon EKS depois de iniciar uma atualização. No entanto, ele preserva o software de complemento em seu cluster. Essa opção torna o complemento em uma instalação autogerenciada, em vez de um complemento do Amazon EKS. Com essa opção, não há tempo de inatividade para o complemento. Os comandos deste procedimento usam essa opção.
-
Remover completamente o software do complemento do cluster: recomendamos remover o complemento do Amazon EKS do cluster se não houver recursos no cluster que dependam dele. Para fazer essa opção, exclua
--preserve
a partir do comando que você utiliza neste procedimento.
Se não houver uma conta do IAM associada ao complemento, a conta do IAM não será removida.
Você pode usar as seguintes ferramentas para remover o complemento do Amazon S3 CSI:
eksctl
Para remover o complemento do Amazon S3 CSI usando eksctl
Substitua my-cluster
pelo nome do cluster, e depois execute comando a seguir.
eksctl delete addon --cluster my-cluster --name aws-mountpoint-s3-csi-driver --preserve
AWS Management Console
-
Abra o console do Amazon EKS
. -
No painel de navegação à esquerda, escolha Clusters.
-
Escolha o nome do cluster de onde você deseja remover o complemento CSI do Amazon EBS.
-
Escolha a guia Add-ons (Complementos).
-
Escolha Mountpoint para driver de CSI do Amazon S3.
-
Escolha Remover.
-
Na caixa de diálogo de confirmação Remover: aws-mountpoint-s3-csi-driver, faça o seguinte:
-
Se quiser que o Amazon EKS pare de gerenciar as configurações do complemento, selecione Preservar no cluster. Faça isso se quiser manter o software de complemento em seu cluster. Isso serve para que você possa gerenciar todas as configurações do complemento por conta própria.
-
Digite
aws-mountpoint-s3-csi-driver
. -
Selecione Remover.
-
AWS CLI
Para remover o complemento do Amazon S3 CSI usando a AWS CLI
Substitua my-cluster
pelo nome do cluster, e depois execute comando a seguir.
aws eks delete-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver --preserve