Panoramica
Se hai già un volume Elastic Block Store (EBS) AWS da importare in GKE su AWS, puoi creare un oggetto PersistentVolume (PV) e riservarlo per una specifica PersistentVolumeClaim (PVC).
Questa pagina spiega come creare un PV utilizzando un volume EBS esistente compilato con i dati e come utilizzare il PV in un pod. Questa pagina è rivolta a operatori e specialisti dello spazio di archiviazione che vogliono configurare e gestire lo spazio di archiviazione. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta la pagina Ruoli e attività comuni degli utenti GKE.
Prima di iniziare
Prima di completare questi passaggi, devi:
- Crea un cluster GKE su AWS e
configura l'accesso con
kubectl
. - Connessione al cluster e autenticazione
Utilizzo di volumi EBS criptati
Se il volume EBS è criptato con AWS Key Management Service (KMS), devi concedere al ruolo IAM AWS del piano di controllo GKE su AWS l'accesso alla chiave KMS.
Per concedere l'accesso al ruolo del control plane alla tua chiave:
Trova il nome del ruolo del piano di controllo del cluster.
Scegli la chiave KMS di AWS utilizzata per criptare il volume EBS e aggiungi il ruolo del piano di controllo come utente della chiave seguendo le istruzioni riportate in Consentire agli utenti della chiave di utilizzare la chiave KMS.
Creazione di un PersistentVolume per un volume EBS preesistente
Puoi importare un volume EBS esistente specificando un nuovo PV e aggiungendolo al tuo cluster.
Copia il seguente codice YAML in un file denominato
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: - ZONE
Replace the following:
VOLUME_NAME
: il nome del volume.VOLUME_CAPACITY
: dimensione del volume, ad esempio30G
. Per maggiori informazioni su come specificare la capacità del volume in Kubernetes, consulta la sezione Significato di memoria.STORAGE_CLASS_NAME
: il nome di StorageClass che esegue il provisioning del volume, ad esempiostandard-rwo
.EBS_VOLUME_ID
: il tuo ID volume EBS. Ad esempio:vol-05786ec9ec9526b67
.FS_TYPE
: il file system del volume, ad esempioext4
.ZONE
: la zona di disponibilità AWS che ospita il volume EBS, ad esempious-east-1c
.
Applica il file YAML al cluster
kubectl apply -f existing-volume.yaml
Conferma la creazione del PV
kubectl describe pv volume-name
L'output di questo comando contiene lo stato del PV.
Utilizzo del volume con un oggetto PersistentVolumeClaim e un pod
Dopo aver importato il volume, puoi creare un PVC e un pod che collega il PVC.
Il codice YAML riportato di seguito crea un PVC e lo collega a un pod che esegue il server web Nginx. Copialo in un file denominato
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_NAME
Sostituisci quanto segue:
STORAGE_CLASS
: il nome di StorageClass da PersistentVolume che hai creato in precedenza, ad esempiostandard-rwo
.VOLUME_NAME
VOLUME_CAPACITY
PVC_NAME
: il nome del PVC, ad esempiomy-pvc
.
Applica il file YAML al cluster
kubectl apply -f nginx.yaml
Controlla lo stato dell'istanza Nginx con
kubectl describe
. L'output deve avere unSTATUS
diRunning
.kubectl describe pod web-server
Passaggi successivi
- Utilizza driver di archiviazione aggiuntivi con GKE su AWS.