Ringkasan
Jika Anda sudah memiliki Elastic Block Store (EBS) AWS
yang perlu diimpor ke GKE di AWS, Anda dapat membuat objek PersistentVolume (PV) dan mencadangkannya untuk PersistentVolumeClaim (PVC) tertentu.
Halaman ini menjelaskan cara membuat PV menggunakan volume EBS yang ada yang diisi dengan data, dan cara menggunakan PV dalam Pod.
Sebelum memulai
Sebelum menyelesaikan langkah-langkah ini, Anda harus:
- Buat GKE di cluster AWS dan konfigurasikan aksesnya dengan
kubectl
. - Menghubungkan dan melakukan autentikasi ke cluster
Menggunakan volume EBS terenkripsi
Jika volume EBS Anda dienkripsi dengan AWS Key Management Service (KMS), Anda harus memberikan akses peran IAM AWS ke kunci KMS kepada GKE di bidang kontrol AWS.
Untuk memberikan akses peran bidang kontrol ke kunci Anda:
Temukan nama peran bidang kontrol cluster Anda.
Pilih kunci AWS KMS yang digunakan untuk mengenkripsi volume EBS Anda, lalu tambahkan peran bidang kontrol sebagai pengguna kunci dengan mengikuti petunjuk di artikel Mengizinkan pengguna kunci untuk menggunakan kunci KMS.
Membuat PersistentVolume untuk volume EBS yang sudah ada
Anda dapat mengimpor volume EBS yang ada dengan menentukan PV baru dan menambahkannya ke cluster Anda.
Salin YAML berikut ke dalam file bernama
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
: Nama volume.VOLUME_CAPACITY
: ukuran volume— misalnya,30G
. Untuk mengetahui informasi selengkapnya tentang cara menentukan kapasitas volume di Kubernetes, lihat Arti memori.STORAGE_CLASS_NAME
: nama StorageClass yang menyediakan volume—misalnya,standard-rwo
.EBS_VOLUME_ID
: ID volume EBS Anda. Misalnya,vol-05786ec9ec9526b67
.FS_TYPE
: Sistem file volume—misalnya,ext4
.ZONE
: Zona Ketersediaan AWS yang menghosting volume EBS— misalnya,us-east-1c
.
Menerapkan YAML ke cluster Anda
kubectl apply -f existing-volume.yaml
Konfirmasi pembuatan PV Anda
kubectl describe pv volume-name
Output dari perintah ini berisi status PV.
Menggunakan volume dengan PersistentVolumeClaim dan Pod
Setelah mengimpor volume, Anda dapat membuat PVC dan Pod yang menyertakan PVC.
YAML di bawah membuat PVC dan melampirkannya ke Pod yang menjalankan server web Nginx. Salin ke dalam file bernama
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
Ganti kode berikut:
STORAGE_CLASS
: Nama StorageClass dari PersistentVolume yang Anda buat sebelumnya—misalnya,standard-rwo
.VOLUME_NAME
VOLUME_CAPACITY
PVC_NAME
: Nama PVC— misalnya,my-pvc
.
Menerapkan YAML ke cluster Anda
kubectl apply -f nginx.yaml
Periksa status instance Nginx Anda dengan
kubectl describe
. Output harus memilikiSTATUS
berupaRunning
.kubectl describe pod web-server
Langkah selanjutnya
- Gunakan driver penyimpanan tambahan dengan GKE di AWS.