Panduan ini menunjukkan cara menggunakan multishare Filestore untuk Google Kubernetes Engine dengan driver CSI GKE Filestore.
Sebelum memulai
Sebelum memulai, selesaikan langkah-langkah penyiapan yang diperlukan untuk menggunakan Filestore.
Aktifkan driver CSI GKE Filestore, versi 1.23 atau yang lebih baru:
Driver versi 1.23 hingga 1.26 mendukung hingga 10 kali berbagi per instance.
Driver versi 1.27 atau yang lebih baru mendukung hingga 80 berbagi per instance.
Menggunakan multishare Filestore dengan beberapa aplikasi
Bagian ini menunjukkan cara men-deploy dua aplikasi, satu Deployment dan satu Statefulset, yang masing-masing menggunakan StorageClass multishare Filestore. Anda juga akan melihat bagaimana GKE melakukan bin packing (proses untuk mengemas aplikasi ke dalam node GKE secara efisien) pada semua volume di dalam instance perusahaan Filestore yang sama yang mendasarinya.
Gunakan StorageClass yang disediakan GKE,
enterprise-multishare-rwx
, untuk membuat instance yang mendukung hingga 10 aktivitas berbagi.- Jika ingin membuat instance yang mendukung hingga 80x bersama, Anda harus membuat StorageClass kustom. Untuk tujuan panduan ini, Anda akan menggunakan StorageClass dengan batas sepuluh kali berbagi per instance.
Setelah driver CSI GKE Filestore diaktifkan, pengguna dapat mengakses StorageClass multishare yang disediakan GKE, yaitu
enterprise-multishare-rwx
, dengan konfigurasi berikut. Dengan mereferensikan StorageClass ini, driver CSI GKE Filestore menggunakan penyediaan volume dinamis guna membuat Volume Persisten (PV) secara otomatis untuk Klaim Volume Persisten (PVC) baru sesuai dengan permintaan workload GKE:kubectl describe sc enterprise-multishare-rwx Name: enterprise-multishare-rwx IsDefaultClass: No Annotations: components.gke.io/component-name=filestorecsi,components.gke.io/component-version=0.7.2,components.gke.io/layer=addon Provisioner: filestore.csi.storage.gke.io Parameters: instance-storageclass-label=enterprise-multishare-rwx,multishare=true,tier=enterprise AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
Membuat StorageClass kustom
Jika Anda ingin memanfaatkan batas kapasitas terbaru hingga 80 kali berbagi per instance Filestore, buat StorageClass kustom berdasarkan template berikut:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: csi-filestore-multishare-128
provisioner: filestore.csi.storage.gke.io
parameters:
tier: enterprise
multishare: "true"
max-volume-size: "128Gi"
network: default
allowVolumeExpansion: true
Saat mengganti nama StorageClass, pertimbangkan persyaratan berikut:
Nama StorageClass harus berupa nama subdomain DNS yang valid.
Nama StorageClass multishare juga digunakan sebagai label instance dan harus mengikuti panduan penamaan label.
Jika aplikasi Anda memerlukan penyediaan volume langsung, sertakan mode binding volume
Immediate
:volumeBindingMode: Immediate
Misalnya, gunakan spesifikasi ini jika Anda tidak ingin penyediaan volume bergantung pada pembuatan pod di cluster GKE.
Mulai versi driver 1.27, jika Anda ingin menetapkan lebih dari 10 kali berbagi per instance, sertakan parameter
max-volume-size
dan tetapkan salah satu nilai yang diterima dari kolom pertama pada parameter tersebut:Ukuran volume maksimum (ukuran pembagian) Jumlah maksimum pembagian per instance 128 GiB 80 256 GiB 40 512 GiB 20 1024 GiB 10 Jadi, misalnya, menambahkan pasangan nilai kunci
max-volume-size: "128Gi"
memastikan bahwa StorageClass memetakan hingga 80 kali berbagi—masing-masing berukuran mulai dari 10 GiB hingga 128 GiB—ke dalam satu instance tingkat perusahaan sebesar 10 TiB.Kemampuan ini merupakan kompatibilitas mundur dengan instance Filestore yang dibuat oleh driver CSI GKE Filestore versi 1.23 hingga 1.26.
Instance yang sudah ada dapat membuat PVC atau berbagi baru, dengan ukuran berbagi minimum yang diperluas sebesar 10 GiB.
Driver CSI GKE Filestore versi 1.27 mengenali instance perusahaan lama dan menetapkan ukuran berbagi maksimum default sebesar 1024 GiB (1 TiB). Akibatnya, instance lama dibatasi jumlah maksimum berbaginya menjadi 10 kali berbagi per instance.
Untuk mengetahui informasi selengkapnya, silakan melihat Multishare Filestore untuk GKE.
Membuat Deployment dengan beberapa replika pod menggunakan satu PVC.
Buat file konfigurasi YAML yang mirip dengan berikut ini:
cat <<EOF | kubectl apply -f - apiVersion: apps/v1 kind: Deployment metadata: name: web-server-multishare labels: app: nginx spec: replicas: 5 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx volumeMounts: - mountPath: /usr/share/nginx/html name: mypvc volumes: - name: mypvc persistentVolumeClaim: claimName: test-pvc-fs --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: test-pvc-fs spec: accessModes: - ReadWriteMany storageClassName: enterprise-multishare-rwx resources: requests: storage: 100Gi EOF
Memeriksa replika pod.
a. Dari command line, jalankan perintah berikut untuk memeriksa status PVC:
kubectl get pvc
Anda akan melihat respons yang mirip dengan berikut ini:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE test-pvc-fs Bound pvc-056d769d-a709-4bb2-b6d3-0361871b27a2 100Gi RWX enterprise-multishare-rwx 35m
b. Dari command line, jalankan perintah berikut untuk memeriksa status pod:
kubectl get pod
Anda akan melihat respons yang mirip dengan berikut ini:
NAME READY STATUS RESTARTS AGE web-server-multishare-76c9ffb4b5-2dhml 1/1 Running 0 35m web-server-multishare-76c9ffb4b5-7mtcb 1/1 Running 0 35m web-server-multishare-76c9ffb4b5-csdbd 1/1 Running 0 35m web-server-multishare-76c9ffb4b5-rgx82 1/1 Running 0 35m web-server-multishare-76c9ffb4b5-zjl27 1/1 Running 0 35m
Menskalakan replika.
a. Dari command line, jalankan perintah berikut untuk mengedit Deployment:
kubectl edit deployment web-server-multishare
b. File akan terbuka di command line. Temukan kolom
spec.replicas
dan perbarui nilai ke10
.c. Dari command line, jalankan perintah berikut untuk melihat perubahan yang diterapkan:
kubectl get pod
Anda akan melihat respons yang mirip dengan berikut ini:
NAME READY STATUS RESTARTS AGE web-server-multishare-76c9ffb4b5-2dhml 1/1 Running 0 36m web-server-multishare-76c9ffb4b5-5ctkf 1/1 Running 0 3s web-server-multishare-76c9ffb4b5-7mtcb 1/1 Running 0 36m web-server-multishare-76c9ffb4b5-8dwmw 1/1 Running 0 2s web-server-multishare-76c9ffb4b5-csdbd 1/1 Running 0 36m web-server-multishare-76c9ffb4b5-lndcq 1/1 Running 0 2s web-server-multishare-76c9ffb4b5-rgx82 1/1 Running 0 36m web-server-multishare-76c9ffb4b5-vtd6p 1/1 Running 0 3s web-server-multishare-76c9ffb4b5-xm49s 1/1 Running 0 3s web-server-multishare-76c9ffb4b5-zjl27 1/1 Running 0 36m
Perhatikan bahwa ada 10 pod yang sedang berjalan.
d. Pada command line, jalankan perintah berikut:
kubectl get deployment
Anda akan melihat respons yang mirip dengan berikut ini:
NAME READY UP-TO-DATE AVAILABLE AGE web-server-multishare 10/10 10 10 36m
e. Dari command line, jalankan perintah berikut untuk memeriksa status terikat PVC:
kubectl get pvc
Anda akan melihat respons yang mirip dengan berikut ini:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE test-pvc-fs Bound pvc-056d769d-a709-4bb2-b6d3-0361871b27a2 100Gi RWX enterprise-multishare-rwx 37m
f. Dari command line, jalankan perintah berikut untuk mengedit Deployment:
kubectl edit deployment web-server-multishare
g. File akan terbuka di command line. Temukan kolom
spec.replicas
dan perbarui nilai ke2
.h. Dari command line, jalankan perintah berikut untuk melihat perubahan yang diterapkan:
kubectl get pod
Anda akan melihat respons yang mirip dengan berikut ini:
NAME READY STATUS RESTARTS AGE web-server-multishare-76c9ffb4b5-2dhml 1/1 Running 0 38m web-server-multishare-76c9ffb4b5-7mtcb 1/1 Running 0 38m
Men-deploy Statefulset.
Deploy aplikasi kedua yang menggunakan instance Filestore yang sama sebagai dasarnya.
Untuk melakukannya, sediakan ruang sebesar 200 GiB dan pastikan bahwa aplikasi tersebut menggunakan instance Filestore yang mendasari yang sama dengan aplikasi pertama.
Anda kemudian akan menskalakan aplikasi ke sembilan replika dengan total 900 GiB (9 replika masing-masing menggunakan 100 GiB) dan memastikan bahwa GKE menggunakan instance Filestore yang sama dengan membagikan instance tersebut.
Buat file konfigurasi YAML yang mirip dengan berikut ini:
cat <<EOF | kubectl apply -f - apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: serviceName: "nginx" replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: registry.k8s.io/nginx-slim:0.8 ports: - containerPort: 80 name: web volumeMounts: - name: test-pvc-multishare mountPath: /usr/share/nginx/html volumeClaimTemplates: - metadata: name: test-pvc-multishare spec: accessModes: [ "ReadWriteMany" ] storageClassName: enterprise-multishare-rwx resources: requests: storage: 100Gi EOF
Periksa replika dan volume Statefulset.
Pada command line, jalankan perintah berikut:
kubectl get pod
Anda akan melihat respons yang mirip dengan berikut ini:
NAME READY STATUS RESTARTS AGE web-0 1/1 Running 0 4m48s web-1 1/1 Running 0 3m32s web-server-multishare-76c9ffb4b5-2dhml 1/1 Running 0 57m web-server-multishare-76c9ffb4b5-7mtcb 1/1 Running 0 57m
Perhatikan bahwa dua pod pertama yang terkait dengan Statefulset. Dua pod terakhir yang terkait dengan Deployment.
Pada command line, jalankan perintah berikut:
kubectl get statefulset
Anda akan melihat respons yang mirip dengan berikut ini:
NAME READY AGE web 2/2 2m8s
Pada command line, jalankan perintah berikut:
kubectl get pvc
Anda akan melihat respons yang mirip dengan berikut ini:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE test-pvc-fs Bound pvc-056d769d-a709-4bb2-b6d3-0361871b27a2 100Gi RWX enterprise-multishare-rwx 54m test-pvc-multishare-web-0 Bound pvc-7aa21b5a-5343-4547-b7d7-414c16af15a7 100Gi RWX enterprise-multishare-rwx 114s test-pvc-multishare-web-1 Bound pvc-8b37cd6e-d764-4d38-80d7-d74228536cfe 100Gi RWX enterprise-multishare-rwx 38s
PVC
test-pvc-fs
terkait dengan Deploymentweb-server-multishare
.PVC
test-pvc-multishare-web-0
dantest-pvc-multishare-web-1
terkait dengan Statefulset.Menskalakan replika Statefulset.
Tingkatkan jumlah replika menjadi sembilan. Saat jumlahnya meningkat, PVC yang sesuai akan dibuat.
a. Pada command line, jalankan perintah berikut:
kubectl edit statefulset web
b. File akan terbuka di command line. Temukan kolom
spec.replicas
dan perbarui nilai ke9
.c. Dari command line, jalankan perintah berikut untuk melihat perubahan yang diterapkan:
kubectl get statefulset
Anda akan melihat respons yang mirip dengan berikut ini:
NAME READY AGE web 9/9 13m
d. Pada command line, jalankan perintah berikut:
kubectl get deployment
Anda akan melihat respons yang mirip dengan berikut ini:
NAME READY UP-TO-DATE AVAILABLE AGE web-server-multishare 2/2 2 2 65m
e. Pada command line, jalankan perintah berikut:
kubectl get pvc
Anda akan melihat respons yang mirip dengan berikut ini:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE test-pvc-fs Bound pvc-056d769d-a709-4bb2-b6d3-0361871b27a2 100Gi RWX enterprise-multishare-rwx 65m test-pvc-multishare-web-0 Bound pvc-7aa21b5a-5343-4547-b7d7-414c16af15a7 100Gi RWX enterprise-multishare-rwx 13m test-pvc-multishare-web-1 Bound pvc-8b37cd6e-d764-4d38-80d7-d74228536cfe 100Gi RWX enterprise-multishare-rwx 12m test-pvc-multishare-web-2 Bound pvc-3fcbd132-939f-4364-807a-7c8ac6a3e64e 100Gi RWX enterprise-multishare-rwx 5m12s test-pvc-multishare-web-3 Bound pvc-5894afa5-2502-4ee7-9d5c-b7378cb85479 100Gi RWX enterprise-multishare-rwx 4m57s test-pvc-multishare-web-4 Bound pvc-ebbe452b-bc8f-4624-a830-a2094cce0d67 100Gi RWX enterprise-multishare-rwx 4m36s test-pvc-multishare-web-5 Bound pvc-5a73a698-d174-44cb-a3a1-e767966c3417 100Gi RWX enterprise-multishare-rwx 4m20s test-pvc-multishare-web-6 Bound pvc-102da6a9-2ca6-4f9e-9896-8fe14709db7a 100Gi RWX enterprise-multishare-rwx 3m55s test-pvc-multishare-web-7 Bound pvc-160e81cd-c5bf-4ae6-966e-518e8249e02d 100Gi RWX enterprise-multishare-rwx 3m38s test-pvc-multishare-web-8 Bound pvc-9b52d773-2e9a-40de-881c-dc06945ba3d7 100Gi RWX enterprise-multishare-rwx 118s
Memverifikasi status instance Filestore.
Sekarang Anda memiliki Deployment dengan dua pod replika, serta Statefulset dengan sembilan pod replika, dan total 10 PVC, masing-masing berukuran 100 GiB. Semua volume dikemas ke dalam satu instance multishare Filestore.
a. Dari command line, jalankan perintah
instances list
berikut:gcloud beta filestore instances list --project=YOUR_PROJECT_ID --region=REGION
dengan:
YOUR_PROJECT_ID adalah nama project yang digunakan. Misalnya,
my-project
.REGION adalah nama region yang digunakan. Misalnya,
us-central1
.
Anda akan melihat respons yang mirip dengan berikut ini:
INSTANCE_NAME LOCATION TIER CAPACITY_GB FILE_SHARE_NAME IP_ADDRESS STATE CREATE_TIME fs-a767cef8-738e-4c8e-b70b-09cbb872d016 us-central1 ENTERPRISE 1024 N/A 10.192.53.2 READY 2022-06-21T21:15:30
b. Dari command line, jalankan perintah
instances describe
berikut:gcloud filestore instances describe fs-a767cef8-738e-4c8e-b70b-09cbb872d016 --project=YOUR_PROJECT_ID --region=REGION capacityGb: '1024' capacityStepSizeGb: '256' createTime: '2022-06-21T21:15:30.464237089Z' labels: storage_gke_io_created-by: filestore_csi_storage_gke_io storage_gke_io_storage-class-id: enterprise-multishare-rwx maxCapacityGb: '10240' maxShareCount: '10' multiShareEnabled: true name: projects/YOUR_PROJECT_ID/locations/REGION/instances/fs-a767cef8-738e-4c8e-b70b-09cbb872d016 networks: - connectMode: DIRECT_PEERING ipAddresses: - 10.192.53.2 modes: - MODE_IPV4 network: csi-filestore-test-network reservedIpRange: 10.192.53.0/26 state: READY tier: ENTERPRISE
dengan:
Memperluas PVC dan memverifikasi instance Filestore
Bagian ini menunjukkan cara memperluas PVC yang ada dan memverifikasi ukuran instance Filestore.
Memperluas PVC.
PVC—yang didukung oleh berbagi dalam instance multishare Filestore—dapat diperluas hingga ke ukuran maksimum yang ditentukan dalam parameter
max-volume-size
. Untuk memverifikasinya, luaskan salah satu volume yang terkait dengan Statefulset saat pod sedang menggunakannya.Dari command line, jalankan perintah berikut untuk memeriksa ukuran PVC saat ini dari replika 0:
kubectl get pvc test-pvc-multishare-web-0 -o json { "apiVersion": "v1", "kind": "PersistentVolumeClaim", "metadata": { "annotations": { "pv.kubernetes.io/bind-completed": "yes", "pv.kubernetes.io/bound-by-controller": "yes", "volume.beta.kubernetes.io/storage-provisioner": "filestore.csi.storage.gke.io", "volume.kubernetes.io/storage-provisioner": "filestore.csi.storage.gke.io" }, "creationTimestamp": "2022-06-21T22:07:42Z", "finalizers": [ "kubernetes.io/pvc-protection" ], "labels": { "app": "nginx" }, "name": "test-pvc-multishare-web-0", "namespace": "default", "resourceVersion": "48395", "uid": "7aa21b5a-5343-4547-b7d7-414c16af15a7" }, "spec": { "accessModes": [ "ReadWriteMany" ], "resources": { "requests": { "storage": "100Gi" } }, "storageClassName": "enterprise-multishare-rwx", "volumeMode": "Filesystem", "volumeName": "pvc-7aa21b5a-5343-4547-b7d7-414c16af15a7" }, "status": { "accessModes": [ "ReadWriteMany" ], "capacity": { "storage": "100Gi" }, "phase": "Bound" } }
Dari command line, jalankan perintah berikut untuk meningkatkan ukuran menjadi 500 GiB:
kubectl edit pvc test-pvc-multishare-web-0
File akan terbuka di command line. Cari kolom
spec.resources.requests.storage
dan perbarui nilainya menjadi500Gi
.Dari command line, jalankan perintah berikut untuk melihat perubahan yang diterapkan:
kubectl get pvc test-pvc-multishare-web-0
Anda akan melihat respons yang mirip dengan berikut ini:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE test-pvc-multishare-web-0 Bound pvc-7aa21b5a-5343-4547-b7d7-414c16af15a7 500Gi RWX enterprise-multishare-rwx 28m
Driver CSI Filestore menerima permintaan tersebut, pertama-tama memperluas instance Filestore yang mendasarinya, lalu memperluas berbagi yang mendukung PVC.
Khususnya, driver CSI Filestore secara otomatis memperluas instance menjadi 1536 Gi untuk mengakomodasi ukuran berbagi baru, yakni 500Gi.
Dari command line, jalankan perintah
instances describe
berikut untuk memverifikasi kapasitas instance Filestore:gcloud filestore instances describe fs-a767cef8-738e-4c8e-b70b-09cbb872d016 --project=YOUR_PROJECT_ID --region=REGION capacityGb: '1536' capacityStepSizeGb: '256' createTime: '2022-06-21T21:15:30.464237089Z' labels: storage_gke_io_created-by: filestore_csi_storage_gke_io storage_gke_io_storage-class-id: enterprise-multishare-rwx maxCapacityGb: '10240' maxShareCount: '10' multiShareEnabled: true name: projects/YOUR_PROJECT_ID/locations/us-central1/instances/fs-a767cef8-738e-4c8e-b70b-09cbb872d016 networks: - connectMode: DIRECT_PEERING ipAddresses: - 10.192.53.2 modes: - MODE_IPV4 network: csi-filestore-test-network reservedIpRange: 10.192.53.0/26 state: READY tier: ENTERPRISE
dengan:
Penyediaan dinamis di VPC Bersama
Driver CSI Filestore untuk GKE mendukung penyediaan dinamis volume dalam project layanan di VPC bersama. Bagian berikut menunjukkan cara menggunakan driver CSI Filestore untuk menyediakan volume secara dinamis pada instance multishare Filestore dalam project layanan pada Jaringan VPC bersama.
Menyelesaikan langkah penyiapan untuk Jaringan VPC bersama dan akses layanan pribadi.
Membuat StorageClass untuk menyediakan volume secara dinamis yang didukung oleh instance multishare Filestore di VPC bersama.
Jalankan perintah berikut untuk men-deploy resource
StorageClass
:cat <<EOF | kubectl apply -f - apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-filestore-multishare-sharedvpc provisioner: filestore.csi.storage.gke.io parameters: network: "projects/HOST_PROJECT_ID/global/networks/SHARED_VPC_NAME" connect-mode: PRIVATE_SERVICE_ACCESS tier: enterprise multishare: "true" allowVolumeExpansion: true EOF
dengan:
HOST_PROJECT_ID adalah ID atau nama project host Jaringan VPC bersama. Misalnya,
my-host-project
.SHARED_VPC_NAME adalah nama Jaringan VPC bersama. Misalnya,
my-shared-vpc
.
Jika Anda ingin men-deploy resource dalam rentang alamat IP yang dicadangkan, tambahkan baris berikut ke parameter yang digunakan dalam perintah:
reserved-ip-range: RESERVED_NAME
Dengan RESERVED_NAME sebagai nama rentang alamat IP yang dicadangkan, tempat instance Filestore dapat disediakan. Contoh,
filestore-reserved-ip-range
. Jika ditentukan, rentang IP yang dicadangkan harus berupa rentang alamat IP bernama, bukan nilai CIDR langsung.Untuk mengetahui informasi selengkapnya, lihat Mengalokasikan rentang alamat IP atau Mengonfigurasi rentang alamat IP yang dicadangkan. Untuk melihat contoh cara membuat nama yang dicadangkan menggunakan Konsol Google Cloud, lihat Membuat alokasi IP.
Membuat Deployment.
Jalankan perintah berikut untuk membuat resource
Deployment
:cat <<EOF | kubectl apply -f - apiVersion: apps/v1 kind: Deployment metadata: name: web-server-multishare labels: app: nginx spec: replicas: 5 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx volumeMounts: - mountPath: /usr/share/nginx/html name: mypvc volumes: - name: mypvc persistentVolumeClaim: claimName: test-pvc-fs-sharedvpc --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: test-pvc-fs-sharedvpc spec: accessModes: - ReadWriteMany storageClassName: csi-filestore-multishare-sharedvpc resources: requests: storage: 100Gi EOF
Instance Filestore berkemampuan CMEK
Anda dapat membuat volume GKE yang dihosting di instance multishare Filestore yang mendukung CMEK. Di bagian ini, Anda akan melihat cara menyiapkan kunci enkripsi yang dikelola pelanggan (CMEK) untuk instance Filestore.
Detail kunci yang dikelola pelanggan dapat diberikan di StorageClass. Setiap instance yang dibuat secara dinamis oleh driver Filestore CSI, yang mereferensikan StorageClass ini, akan mengaktifkan CMEK.
Membuat StorageClass yang mendukung CMEK.
a. Jalankan perintah berikut:
cat <<EOF | kubectl apply -f - apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-filestore-multishare-cmek provisioner: filestore.csi.storage.gke.io parameters: tier: enterprise multishare: "true" instance-encryption-kms-key: projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME allowVolumeExpansion: true EOF
dengan:
Membuat Deployment.
b. Jalankan perintah berikut untuk membuat resource
Deployment
:cat <<EOF | kubectl apply -f - apiVersion: apps/v1 kind: Deployment metadata: name: web-server-multishare labels: app: nginx spec: replicas: 5 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx volumeMounts: - mountPath: /usr/share/nginx/html name: mypvc volumes: - name: mypvc persistentVolumeClaim: claimName: test-pvc-fs-cmek --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: test-pvc-fs-cmek spec: accessModes: - ReadWriteMany storageClassName: csi-filestore-multishare-cmek resources: requests: storage: 100Gi EOF
Memetakan PVC ke instance Filestore
Di bagian ini, Anda akan melihat cara memetakan PVC ke instance Filestore.
Dengan instance multishare Filestore, setiap PVC dihosting di instance Filestore oleh driver CSI Filestore. Detail
instance Filestore, yang mendasari yang menghosting volume dan
berbagi yang mewakili volume Kubernetes, ditangkap di kolom volumeHandle
pada spesifikasi Volume Persisten. Format handle volume adalah
sebagai berikut:
modeMultishare/<storageclass-prefix>/<project>/<region>/<filestore-instance-name>/<filestore-share-name>
Perintah kubectl
berikut dapat digunakan untuk menentukan pemetaan antara PVC, PV, Instance Filestore, dan berbagi Filestore dengan cepat.
Pada command line, jalankan perintah berikut:
kubectl get pv -o jsonpath='{range .items[*]}{"pv="}{.metadata.name}{",pvc="}{.spec.claimRef.name}{",volumeHandle="}{.spec.csi.volumeHandle}{"\n"}{end}'
Anda akan melihat respons yang mirip dengan berikut ini:
pv=pvc-67ad9abd-f25e-4130-b7ca-64d28bd29525,pvc=test-pvc-multishare,volumeHandle=modeMultishare/csi-filestore-multishare-sharedvpc/YOUR_PROJECT_ID/us-central1/fs-2109f680-3f04-4ada-b4bc-2a1c7fc47b88/pvc_67ad9abd_f25e_4130_b7ca_64d28bd29525
pv=pvc-c80f4de0-9916-4957-b8ae-b21206650ac0,pvc=test-pvc-fs-sharedvpc,volumeHandle=modeMultishare/csi-filestore-multishare-sharedvpc/YOUR_PROJECT_ID/us-central1/fs-2109f680-3f04-4ada-b4bc-2a1c7fc47b88/pvc_c80f4de0_9916_4957_b8ae_b21206650ac0
dengan:
- YOUR_PROJECT_ID adalah nama project yang digunakan. Misalnya,
my-project
.
Perhatikan bahwa dua volume persisten dalam cluster dihosting di satu instance Filestore.
Langkah selanjutnya
- Membuat instance pada jaringan VPC Bersama dalam project layanan.
- Membandingkan keuntungan relatif dari penyimpanan blok, file, dan objek.
- Opsi penyimpanan untuk workload HPC di Google Cloud.