Vista geral
Se já tiver um volume do AWS Elastic Block Store (EBS) para importar para o GKE no AWS, pode criar um objeto PersistentVolume (PV) e reservá-lo para um PersistentVolumeClaim (PVC) específico.
Esta página explica como criar um PV através de um volume do EBS existente preenchido com dados e como usar o PV num Pod. Esta página destina-se a operadores e especialistas em armazenamento que pretendam configurar e gerir o armazenamento. Para saber mais sobre as funções comuns e as tarefas de exemplo a que fazemos referência no conteúdo, consulte o artigo Funções e tarefas comuns de utilizadores do GKE. Google Cloud
Antes de começar
Antes de concluir estes passos, tem de:
- Crie um cluster do GKE no AWS e
configure o acesso ao mesmo com o
kubectl. - Estabeleça ligação e autentique-se no seu cluster
Usar volumes EBS encriptados
Se o seu volume EBS estiver encriptado com o AWS Key Management Service (KMS), tem de conceder à função do AWS IAM do plano de controlo do GKE no AWS acesso à sua chave do KMS.
Para conceder à função do plano de controlo acesso à sua chave:
Encontre o nome da função do plano de controlo do seu cluster.
Escolha a chave do AWS KMS usada para encriptar o seu volume do EBS e adicione a função do plano de controlo como utilizador da chave seguindo as instruções em Permitir que os utilizadores da chave usem a chave do KMS.
Criar um PersistentVolume para um volume EBS pré-existente
Pode importar um volume EBS existente especificando um novo PV e adicionando-o ao cluster.
Copie o seguinte YAML para um ficheiro com o nome
existing-volume.yaml:apiVersion: v1 kind: PersistentVolume metadata: name: VOLUME_NAME annotations: pv.kubernetes.io/provisioned-by: ebs.csi.aws.com spec: capacity: storage: VOLUME_CAPACITY accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: STORAGE_CLASS_NAME claimRef: name: my-pvc namespace: default csi: driver: ebs.csi.aws.com volumeHandle: EBS_VOLUME_ID fsType: FILE_SYSTEM_TYPE nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: topology.ebs.csi.aws.com/zone operator: In values: - ZONEReplace the following:VOLUME_NAME: o nome do volume.VOLUME_CAPACITY: tamanho do volume, por exemplo,30G. Para mais informações sobre como especificar a capacidade do volume no Kubernetes, consulte o artigo Significado da memória.STORAGE_CLASS_NAME: o nome da StorageClass que aprovisiona o volume, por exemplo,standard-rwo.EBS_VOLUME_ID: o ID do volume do EBS. Por exemplo,vol-05786ec9ec9526b67.FS_TYPE: O sistema de ficheiros do volume, por exemplo,ext4.ZONE: a zona de disponibilidade da AWS que aloja o volume do EBS, por exemplo,us-east-1c.
Aplique o YAML ao seu cluster
kubectl apply -f existing-volume.yamlConfirme a criação da sua propriedade de visualização de página
kubectl describe pv volume-nameO resultado deste comando contém o estado da PV.
Usar o volume com uma PersistentVolumeClaim e um pod
Depois de importar o volume, pode criar um PVC e um pod que anexa o PVC.
O YAML abaixo cria um PVC e anexa-o a um pod que executa o servidor Web Nginx. Copie-o para um ficheiro com o nome
nginx.yaml:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: STORAGE_CLASS_NAME volumeName: VOLUME_NAME accessModes: - ReadWriteOnce resources: requests: storage: VOLUME_CAPACITY --- apiVersion: v1 kind: Pod metadata: name: web-server spec: containers: - name: web-server image: nginx volumeMounts: - mountPath: /var/lib/www/html name: data volumes: - name: data persistentVolumeClaim: claimName: PVC_NAMESubstitua o seguinte:
STORAGE_CLASS: o nome da StorageClass do PersistentVolume que criou anteriormente, por exemplo,standard-rwo.VOLUME_NAMEVOLUME_CAPACITYPVC_NAME: nome do PVC, por exemplo,my-pvc.
Aplique o YAML ao seu cluster
kubectl apply -f nginx.yamlVerifique o estado da sua instância do Nginx com
kubectl describe. O resultado deve ter umSTATUSdeRunning.kubectl describe pod web-server
O que se segue?
- Use controladores de armazenamento adicionais com o GKE no AWS.