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

Implantar uma workload com estado de exemplo no Modo Automático do EKS

Modo de foco
Implantar uma workload com estado de exemplo no Modo Automático do EKS - Amazon EKS

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.

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.

Este tutorial o orientará na implantação de uma aplicação com estado de exemplo no cluster do Modo Automático do EKS. A aplicação grava carimbos de data e hora em um volume persistente, demonstrando os recursos automáticos de provisionamento e persistência de volume do EBS do Modo Automático do EKS.

Pré-requisitos

  • Um cluster do Modo Automático do EKS

  • A AWS CLI configurada com as permissões apropriadas

  • kubectl instalado e configurado

Etapa 1: configurar o ambiente

  1. Defina as variáveis de ambiente:

    export CLUSTER_NAME=my-auto-cluster export AWS_REGION="us-west-2"
  2. Atualize o kubeconfig:

    aws eks update-kubeconfig --name "${CLUSTER_NAME}"

Etapa 2: criar a classe de armazenamento

A StorageClass define como o Modo Automático do EKS provisionará volumes do EBS.

O Modo Automático do EKS não cria uma StorageClass para você. Você deve criar uma StorageClass referenciando ebs.csi.eks.amazonaws.com para usar o recurso de armazenamento do Modo Automático do EKS.

  1. Crie um arquivo chamado storage-class.yaml:

    apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: auto-ebs-sc annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: ebs.csi.eks.amazonaws.com volumeBindingMode: WaitForFirstConsumer parameters: type: gp3 encrypted: "true"
  2. Aplique a StorageClass:

    kubectl apply -f storage-class.yaml

Principais componentes:

  • provisioner: ebs.csi.eks.amazonaws.com: usa o Modo Automático do EKS

  • volumeBindingMode: WaitForFirstConsumer: atrasa a criação do volume até que um pod precise dele

  • type: gp3: especifica o tipo de volume do EBS

  • encrypted: "true": o EBS usará a chave aws/ebs padrão para criptografar volumes criados com essa classe. Isso é opcional, mas recomendado.

  • storageclass.kubernetes.io/is-default-class: "true": o Kubernetes usará essa classe de armazenamento por padrão, a menos que você especifique uma classe de volume diferente em uma reivindicação de volume persistente. Tenha cuidado ao definir esse valor se estiver migrando de outro controlador de armazenamento. (opcional)

Etapa 3: criar a declaração de volume persistente

A PVC solicita armazenamento da StorageClass.

  1. Crie um arquivo chamado pvc.yaml:

    apiVersion: v1 kind: PersistentVolumeClaim metadata: name: auto-ebs-claim spec: accessModes: - ReadWriteOnce storageClassName: auto-ebs-sc resources: requests: storage: 8Gi
  2. Aplique a PVC:

    kubectl apply -f pvc.yaml

Principais componentes:

  • accessModes: ReadWriteOnce: o volume pode ser montado por um nó por vez

  • storage: 8Gi: solicita um volume de 8 GiB

  • storageClassName: auto-ebs-sc: referencia a StorageClass que criamos

Etapa 4: implantar uma aplicação

A implantação executa um contêiner que grava carimbos de data e hora no volume persistente.

  1. Crie um arquivo chamado deployment.yaml:

    apiVersion: apps/v1 kind: Deployment metadata: name: inflate-stateful spec: replicas: 1 selector: matchLabels: app: inflate-stateful template: metadata: labels: app: inflate-stateful spec: terminationGracePeriodSeconds: 0 nodeSelector: eks.amazonaws.com/compute-type: auto containers: - name: bash image: public.ecr.aws/docker/library/bash:4.4 command: ["/usr/local/bin/bash"] args: ["-c", "while true; do echo $(date -u) >> /data/out.txt; sleep 60; done"] resources: requests: cpu: "1" volumeMounts: - name: persistent-storage mountPath: /data volumes: - name: persistent-storage persistentVolumeClaim: claimName: auto-ebs-claim
  2. Aplique a implantação:

    kubectl apply -f deployment.yaml

Principais componentes:

  • Contêiner bash simples que grava carimbos de data e hora em um arquivo

  • Monta o PVC em /data

  • Solicita um núcleo de CPU

  • Usa o seletor de nós para nós gerenciados pelo EKS

Etapa 5: verificar a configuração

  1. Verifique se o pod está em execução:

    kubectl get pods -l app=inflate-stateful
  2. Verifique se a PVC está vinculada:

    kubectl get pvc auto-ebs-claim
  3. Verifique o volume do EBS:

    # Get the PV name PV_NAME=$(kubectl get pvc auto-ebs-claim -o jsonpath='{.spec.volumeName}') # Describe the EBS volume aws ec2 describe-volumes \ --filters Name=tag:CSIVolumeName,Values=${PV_NAME}
  4. Verifique se os dados estão sendo gravados:

    kubectl exec "$(kubectl get pods -l app=inflate-stateful \ -o=jsonpath='{.items[0].metadata.name}')" -- \ cat /data/out.txt

Etapa 6: limpeza

Execute o comando a seguir para remover todos os recursos criados neste tutorial:

# Delete all resources in one command kubectl delete deployment/inflate-stateful pvc/auto-ebs-claim storageclass/auto-ebs-sc

O que está acontece por detrás

  1. A PVC solicita armazenamento da StorageClass

  2. Quando o pod está programado:

    1. O Modo Automático do EKS provisiona um volume do EBS

    2. Cria um PersistentVolume

    3. Anexa o volume ao nó

  3. O pod monta o volume e começa a gravar carimbos de data e hora

Controlador de snapshots

O Modo Automático do EKS é compatível com o Kubernetes CSI Snapshotter, também conhecido como controlador de snapshots. No entanto, o Modo Automático do EKS não inclui o controlador de snapshots. Você é responsável por instalar e configurar o controlador de snapshots. Para ter mais informações, consulte Habilitar a funcionalidade de snapshot para volumes CSI.

Analise a VolumeSnapshotClass a seguir que faz referência à capacidade de armazenamento do Modo Automático do EKS.

apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: auto-ebs-vsclass driver: ebs.csi.eks.amazonaws.com deletionPolicy: Delete

Saiba mais sobre o Kubernetes CSI Snapshotter.

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