Ringkasan
Jika sudah memiliki volume AWS Elastic Block Store (EBS) untuk diimpor ke GKE pada 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
- Dari direktori
anthos-aws
, gunakananthos-gke
untuk mengalihkan konteks ke cluster pengguna.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Ganti CLUSTER_NAME dengan nama cluster pengguna Anda.
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 nilainya:- 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 untuk 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,
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
dan selesaikan konfigurasi Anda
dengan mengganti nilainya:
- storage-class: Nama StorageClass dari
PersistentVolume yang Anda buat sebelumnya. Misalnya,
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
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
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 mendapatkan nama peran IAM AWS, lakukan langkah-langkah berikut:
Beralihlah ke direktori yang memiliki konfigurasi GKE on AWS. Anda membuat direktori ini saat Menginstal layanan pengelolaan.
cd anthos-aws
Pilih apakah Anda membuat GKE di lingkungan 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 GKE di lingkungan AWS dengan alat
anthos- gke
, outputnya 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 berikut.Dibuat secara manual
Periksa output
terraform output
dengan perintah berikut:terraform output | less
Scroll ke 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 ke bidang kontrol ke volume EBS Anda, tambahkan profil AWS IAM
gke-xxxxxx-controlplane
sebagai Pengguna Kunci ke kunci AWS KMS yang digunakan untuk mengenkripsi volume EBS Anda.
Langkah selanjutnya
- Gunakan driver penyimpanan tambahan dengan GKE di AWS.