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-gke
untuk 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.yaml
dan 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-rwo
default.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.yaml
Konfirmasi pembuatan PV Anda
kubectl describe pv volume-name
Output 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.yaml
Periksa status instance Nginx Anda dengan
kubectl describe
. Output harus memilikiSTATUS
Running
.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 membuat direktori ini saat Menginstal layanan pengelolaan.
cd anthos-aws
Pilih apakah Anda membuat lingkungan GKE di AWS dengan alat
anthos-gke
atau membuat profil IAM AWS secara manual.Alat anthos-gke
Gunakan perintah
terraform output
dan telusuri nilaiiamInstanceProfile
.terraform output | grep iamInstanceProfile
Jika 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-nodepool
Dengan CLUSTER_ID sebagai ID cluster Anda. Salin nilai
gke-CLUSTER_ID-controlplane
untuk langkah berikutnya.Dibuat secara manual
Periksa output
terraform output
dengan perintah berikut:terraform output | less
Scroll output dan temukan iamInstanceProfile setelah definisi AWSCluster.
kind: AWSCluster metadata: name: cluster-0 spec: ... controlPlane: ... iamInstanceProfile: INSTANCE_PROFILE_NAME
Salin nilai
INSTANCE_PROFILE_NAME
untuk langkah berikutnya.Untuk memberikan akses bidang kontrol ke volume EBS Anda, tambahkan profil IAM AWS
gke-xxxxxx-controlplane
sebagai Pengguna Utama ke kunci AWS KMS yang digunakan untuk mengenkripsi volume EBS Anda.
Langkah berikutnya
- Gunakan driver penyimpanan tambahan dengan GKE di AWS.