Ringkasan
Jika sudah memiliki volume AWS Elastic Block Store (EBS) untuk 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 sudah ada yang diisi dengan data, dan cara menggunakan PV di sebuah Pod.
Sebelum memulai
- Dari direktori
anthos-aws, gunakananthos-gkeuntuk beralih konteks ke cluster pengguna Anda. Ganti CLUSTER_NAME dengan nama cluster pengguna Anda.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Membuat PersistentVolume untuk volume EBS yang sudah ada
Anda dapat mengimpor volume EBS yang ada dengan menentukan PV baru.
Salin YAML berikut ke dalam file bernama
existing-volume.yamldan selesaikan konfigurasi Anda dengan mengganti nilai:- volume-capacity: ukuran volume. Contoh,
30Gi. Untuk mengetahui informasi selengkapnya tentang cara menentukan kapasitas volume di Kubernetes, lihat Arti memori. storage-class-name: nama StorageClass yang menyediakan volume. Misalnya, Anda dapat menggunakan
standard-rwodefault.ebs-id: ID volume EBS. Misalnya,
vol-05786ec9ec9526b67.fs-type: Sistem file volume. Misalnya,
ext4.zone: Zona Ketersediaan AWS yang menghosting volume EBS. Contoh,
us-east-1c.
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- volume-capacity: ukuran volume. Contoh,
Terapkan YAML ke cluster Anda
kubectl apply -f existing-volume.yamlKonfirmasi pembuatan PV Anda
kubectl describe pv volume-nameOutput perintah ini berisi status PV.
Menggunakan volume dengan PersistentVolumeClaim dan Pod
Setelah mengimpor volume, Anda dapat membuat PVC dan Pod yang melampirkan PVC.
YAML di bawah membuat PVC dan melampirkannya ke Pod yang menjalankan server web
Nginx. Salin ke file bernama nginx.yaml dan selesaikan konfigurasi Anda dengan mengganti nilai:
- storage-class: Nama StorageClass dari
PersistentVolume yang Anda buat sebelumnya. Contoh,
standard-rwo. - volume-name: Nama volume yang Anda buat sebelumnya.
- volume-capacity: ukuran volume. Contoh,
30Gi.
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: my-pvc
Terapkan YAML ke cluster Anda
kubectl apply -f nginx.yamlPeriksa status instance Nginx Anda dengan
kubectl describe. Output harus memilikiSTATUSRunning.kubectl describe pod web-server
Menggunakan volume EBS terenkripsi
Jika volume EBS Anda dienkripsi dengan AWS Key Management Service (KMS), Anda harus memberikan akses peran IAM AWS bidang kontrol GKE di AWS ke kunci KMS Anda.
Untuk mendapatkan nama peran AWS IAM, lakukan langkah-langkah berikut:
Beralih ke direktori dengan konfigurasi GKE di AWS Anda. Anda membuat direktori ini saat Menginstal layanan pengelolaan.
cd anthos-aws
Pilih apakah Anda membuat lingkungan GKE di AWS dengan alat
anthos-gkeatau membuat profil IAM AWS secara manual.Alat anthos-gke
Gunakan perintah
terraform outputdan telusuri nilaiiamInstanceProfile.terraform output | grep iamInstanceProfileJika Anda membuat lingkungan GKE di AWS dengan alat
anthos- gke, output-nya akan terlihat seperti berikut:iamInstanceProfile: gke-CLUSTER_ID-controlplane iamInstanceProfile: gke-CLUSTER_ID-nodepoolDengan CLUSTER_ID sebagai ID cluster Anda. Salin nilai
gke-CLUSTER_ID-controlplaneuntuk langkah berikutnya.Dibuat secara manual
Periksa output
terraform outputdengan perintah berikut:terraform output | lessScroll output dan temukan iamInstanceProfile setelah definisi AWSCluster.
kind: AWSCluster metadata: name: cluster-0 spec: ... controlPlane: ... iamInstanceProfile: INSTANCE_PROFILE_NAMESalin nilai
INSTANCE_PROFILE_NAMEuntuk langkah berikutnya.Untuk memberikan akses bidang kontrol ke volume EBS Anda, tambahkan profil IAM AWS
gke-xxxxxx-controlplanesebagai Pengguna Kunci ke kunci AWS KMS yang digunakan untuk mengenkripsi volume EBS Anda.
Langkah berikutnya
- Gunakan driver penyimpanan tambahan dengan GKE di AWS.