Questa guida mostra come utilizzare le condivisioni multiple Filestore per Google Kubernetes Engine con il driver CSI Filestore GKE.
Prima di iniziare
Prima di iniziare, completa i passaggi di configurazione necessari per utilizzare Filestore.
Abilita il driver CSI Filestore per GKE, versione 1.23 o successive:
Le versioni dei driver da 1.23 a 1.26 supportano fino a 10 condivisioni per istanza.
Le versioni del driver 1.27 o successive supportano fino a 80 condivisioni per istanza.
Per i requisiti più recenti del driver CSI Filestore GKE, consulta Accedere alle istanze Filestore con il driver CSI Filestore.
Utilizzare Filestore Multishares con più applicazioni
Questa sezione mostra come eseguire il deployment di due applicazioni, un Deployment e un Statefulset, ognuna delle quali utilizza una StorageClass multishare Filestore. Vedrai anche come GKE bin pack (un processo per raggruppare in modo efficiente le applicazioni nei nodi GKE) tutti i volumi nella stessa istanza Filestore Enterprise sottostante.
Utilizza StorageClass fornita da GKE,
enterprise-multishare-rwx
, per creare istanze che supportano fino a 10 condivisioni.- Se vuoi creare istanze che supportino fino a 80 condivisioni, devi creare una StorageClass personalizzata. Ai fini di questa guida, utilizzerai un oggetto StorageClass con un limite di dieci condivisioni per istanza.
Una volta abilitato il driver CSI di GKE Filestore, gli utenti possono accedere a StorageClass multishare fornita da GKE
enterprise-multishare-rwx
con la seguente configurazione. Facendo riferimento a questa StorageClass, il driver CSI di GKE Filestore utilizza il provisioning dinamico dei volumi per creare automaticamente volumi permanenti (PV) per nuove richieste di volumi permanenti (PVC) in base alle esigenze del carico di lavoro 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>
Crea una classe StorageClass personalizzata
Se vuoi sfruttare il limite di capacità più recente, ovvero fino a 80 condivisioni per istanza Filestore, crea una StorageClass personalizzata basata sul seguente modello:
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
Quando rinomini StorageClass, tieni presente i seguenti requisiti:
Il nome StorageClass deve essere un nome di sottodominio DNS valido.
Il nome di StorageClass multishare viene utilizzato anche come etichetta dell'istanza e deve rispettare le linee guida per la denominazione delle etichette.
Se la tua applicazione richiede il provisioning immediato del volume, includi la modalità di binding del volume
Immediate
:volumeBindingMode: Immediate
Utilizza questa specifica, ad esempio, se non vuoi che il provisioning del volume dipenda dalla creazione di pod nel cluster GKE.
A partire dalla versione 1.27 del driver, se vuoi assegnare più di 10 condivisioni per istanza, includi il parametro
max-volume-size
e assegnagli uno dei valori accettati della prima colonna:Dimensione massima del volume (dimensione della condivisione) Numero massimo di condivisioni per istanza 128 GiB 80 256 GiB 40 512 GiB 20 1024 GiB 10 Ad esempio, l'aggiunta della coppia chiave-valore
max-volume-size: "128Gi"
garantisce che StorageClass mappi fino a 80 condivisioni, ciascuna di dimensioni comprese tra 10 GiB e 128 GiB, a una singola istanza di livello Enterprise da 10 TiB.Questa funzionalità è compatibile con le istanze Filestore create dalle versioni 1.23-1.26 del driver CSI Filestore GKE.
Le istanze esistenti possono creare nuovi PVC o condivisioni con la dimensione minima di condivisione estesa di 10 GiB.
Il driver CSI Filestore per GKE versione 1.27 o successive riconosce le istanze enterprise legacy e assegna loro una dimensione massima della condivisione predefinita di 1024 GiB (1 TiB). Di conseguenza, le istanze legacy sono limitate a un numero massimo di condivisioni pari a 10 per istanza.
Per maggiori informazioni, consulta Filestore multishares per GKE.
Crea un deployment con più repliche di pod utilizzando un'unica PVC.
Crea un file di configurazione YAML simile al seguente:
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
Controlla le repliche dei pod.
a. Dalla riga di comando, esegui questo comando per controllare lo stato della PVC:
kubectl get pvc
Dovresti visualizzare una risposta simile alla seguente:
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. Dalla riga di comando, esegui il comando seguente per controllare lo stato del pod:
kubectl get pod
Dovresti visualizzare una risposta simile alla seguente:
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
Scala le repliche.
a. Dalla riga di comando, esegui questo comando per modificare il deployment:
kubectl edit deployment web-server-multishare
b. Il file si aprirà nella riga di comando. Trova il campo
spec.replicas
e aggiorna il valore a10
.c. Dalla riga di comando, esegui questo comando per visualizzare la modifica applicata:
kubectl get pod
Dovresti visualizzare una risposta simile alla seguente:
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
Nota che sono in esecuzione 10 pod.
d. Dalla riga di comando, esegui questo comando:
kubectl get deployment
Dovresti visualizzare una risposta simile alla seguente:
NAME READY UP-TO-DATE AVAILABLE AGE web-server-multishare 10/10 10 10 36m
e. Dalla riga di comando, esegui questo comando per verificare lo stato di binding della PVC:
kubectl get pvc
Dovresti visualizzare una risposta simile alla seguente:
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. Dalla riga di comando, esegui questo comando per modificare il deployment:
kubectl edit deployment web-server-multishare
g. Il file si aprirà nella riga di comando. Trova il campo
spec.replicas
e aggiorna il valore a2
.h. Dalla riga di comando, esegui questo comando per visualizzare la modifica applicata:
kubectl get pod
Dovresti visualizzare una risposta simile alla seguente:
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
Esegui il deployment di un oggetto StatefulSet.
Esegui il deployment di una seconda applicazione che condivide l'istanza Filestore sottostante.
A questo scopo, esegui il provisioning di 200 GiB di spazio e verifica che utilizzi la stessa istanza Filestore sottostante della prima applicazione.
Poi, ridimensiona l'applicazione a nove repliche utilizzando 900 GiB in totale (9 repliche che utilizzano 100 GiB ciascuna) e verifica che GKE utilizzi la stessa istanza Filestore condividendola.
Crea un file di configurazione YAML simile al seguente:
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
Controlla le repliche e i volumi di Statefulset.
Dalla riga di comando, esegui questo comando:
kubectl get pod
Dovresti visualizzare una risposta simile alla seguente:
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
Nota che i primi due pod sono associati a StatefulSet. Gli ultimi due pod sono associati al deployment.
Dalla riga di comando, esegui questo comando:
kubectl get statefulset
Dovresti visualizzare una risposta simile alla seguente:
NAME READY AGE web 2/2 2m8s
Dalla riga di comando, esegui questo comando:
kubectl get pvc
Dovresti visualizzare una risposta simile alla seguente:
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
Il PVC
test-pvc-fs
è associato al deploymentweb-server-multishare
.I PVC
test-pvc-multishare-web-0
etest-pvc-multishare-web-1
sono associati a Statefulset.Scala le repliche StatefulSet.
Aumenta il conteggio delle repliche a nove. Man mano che il conteggio aumenta, vengono create le PVC corrispondenti.
a. Dalla riga di comando, esegui questo comando:
kubectl edit statefulset web
b. Il file si aprirà nella riga di comando. Trova il campo
spec.replicas
e aggiorna il valore a9
.c. Dalla riga di comando, esegui questo comando per visualizzare la modifica applicata:
kubectl get statefulset
Dovresti visualizzare una risposta simile alla seguente:
NAME READY AGE web 9/9 13m
d. Dalla riga di comando, esegui questo comando:
kubectl get deployment
Dovresti visualizzare una risposta simile alla seguente:
NAME READY UP-TO-DATE AVAILABLE AGE web-server-multishare 2/2 2 2 65m
e. Dalla riga di comando, esegui questo comando:
kubectl get pvc
Dovresti visualizzare una risposta simile alla seguente:
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
Verifica lo stato dell'istanza Filestore.
Ora hai un deployment con due pod di replica e un Statefulset con nove pod di replica e un totale di 10 PVC, ciascuno di 100 GiB. Tutti i volumi sono raggruppati in una singola istanza multishare di Filestore.
a. Dalla riga di comando, esegui questo comando
instances list
:gcloud beta filestore instances list --project=YOUR_PROJECT_ID --region=REGION
dove:
YOUR_PROJECT_ID è il nome del progetto in uso. Ad esempio:
my-project
.REGION è il nome della regione utilizzata. Ad esempio:
us-central1
.
Dovresti visualizzare una risposta simile alla seguente:
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. Dalla riga di comando, esegui questo comando
instances describe
: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
dove:
Espandi un PVC e verifica l'istanza Filestore
Questa sezione mostra come espandere un PVC esistente e verificare le dimensioni dell'istanza Filestore.
Espandi una PVC.
I PVC, supportati da condivisioni in un'istanza multishare Filestore, possono raggiungere la dimensione massima specificata nel parametro
max-volume-size
. Per verificarlo, espandi uno dei volumi associati a Statefulset mentre il pod lo utilizza.Dalla riga di comando, esegui il seguente comando per controllare le dimensioni attuali del PVC della replica 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" } }
Dalla riga di comando, esegui questo comando per aumentare le dimensioni a 500 GiB:
kubectl edit pvc test-pvc-multishare-web-0
Il file si aprirà nella riga di comando. Trova il campo
spec.resources.requests.storage
e aggiorna il valore a500Gi
.Dalla riga di comando, esegui questo comando per visualizzare la modifica applicata:
kubectl get pvc test-pvc-multishare-web-0
Dovresti visualizzare una risposta simile alla seguente:
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
Il driver CSI Filestore ha accettato la richiesta, prima espandendo l'istanza Filestore sottostante e poi espandendo la condivisione che supporta il PVC.
Nello specifico, il driver CSI Filestore ha espanso automaticamente l'istanza a 1536 Gi per adattarsi alla nuova dimensione della condivisione di 500 Gi.
Dalla riga di comando, esegui il seguente comando
instances describe
per verificare la capacità dell'istanza 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
dove:
Provisioning dinamico su un VPC condiviso
Il driver CSI Filestore per GKE supporta il provisioning dinamico dei volumi in un progetto di servizio in un VPC condiviso. La sezione seguente mostra come utilizzare il driver CSI Filestore per eseguire il provisioning dinamico dei volumi sulle istanze multishare Filestore in un progetto di servizio in una rete VPC condiviso.
Completa i passaggi di configurazione per una rete VPC condiviso e l'accesso privato ai servizi.
Crea una StorageClass per eseguire il provisioning dinamico dei volumi supportati da un'istanza multishare Filestore su un VPC condiviso.
Esegui questo comando per eseguire il deployment di una risorsa
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
dove:
HOST_PROJECT_ID è l'ID o il nome del progetto host della reteVPC condivisoa. Ad esempio:
my-host-project
.SHARED_VPC_NAME il nome della rete VPC condivisa. Ad esempio:
my-shared-vpc
.
Se vuoi eseguire il deployment della risorsa all'interno di un intervallo di indirizzi IP riservati, aggiungi la seguente riga ai parametri utilizzati nel comando:
reserved-ip-range: RESERVED_NAME
dove RESERVED_NAME è il nome dell'intervallo di indirizzi IP riservati in cui può essere eseguito il provisioning di un'istanza Filestore. Ad esempio,
filestore-reserved-ip-range
. Se viene specificato un intervallo IP riservato, deve essere un intervallo di indirizzi denominato anziché un valore CIDR diretto.Per saperne di più, consulta Allocare intervalli di indirizzi IP o Configurare un intervallo di indirizzi IP riservato. Per vedere un esempio di come creare un nome riservato utilizzando la console Google Cloud , consulta Crea un'allocazione IP.
Crea un deployment.
Esegui questo comando per creare una risorsa
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
Istanze Filestore abilitate per CMEK
Puoi creare volumi GKE ospitati su istanze multishare Filestore abilitate a CMEK. In questa sezione vedrai come configurare una chiave di crittografia gestita dal cliente (CMEK) per l'istanza Filestore.
I dettagli della chiave gestita dal cliente possono essere forniti in StorageClass. Qualsiasi istanza creata dinamicamente dal driver CSI Filestore, che fa riferimento a questa StorageClass, avrà CMEK abilitata.
Crea una StorageClass abilitata per CMEK.
a. Esegui questo comando:
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
dove:
Crea un deployment.
b. Esegui questo comando per creare una risorsa
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
Mappa i PVC alle istanze Filestore
In questa sezione, vedrai come mappare i tuoi PVC alle tue istanze Filestore.
Con le istanze multishare Filestore, ogni PVC è ospitato su un'istanza Filestore dal driver CSI Filestore. I dettagli dell'istanza Filestore sottostante che ospita il volume e la condivisione che rappresenta il volume Kubernetes vengono acquisiti nel campo volumeHandle
della specifica dei volumi permanenti. Il formato dell'handle del volume è il seguente:
modeMultishare/<storageclass-prefix>/<project>/<region>/<filestore-instance-name>/<filestore-share-name>
Il seguente comando kubectl
può essere utilizzato per determinare rapidamente i mapping
tra un PVC, un PV, un'istanza Filestore e una condivisione
Filestore.
Dalla riga di comando, esegui questo comando:
kubectl get pv -o jsonpath='{range .items[*]}{"pv="}{.metadata.name}{",pvc="}{.spec.claimRef.name}{",volumeHandle="}{.spec.csi.volumeHandle}{"\n"}{end}'
Dovresti visualizzare una risposta simile alla seguente:
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
dove:
- YOUR_PROJECT_ID è il nome del progetto
in uso. Ad esempio:
my-project
.
Tieni presente che due volumi permanenti nel cluster sono ospitati su una singola istanza Filestore.
Passaggi successivi
- Crea un'istanza su una rete VPC condiviso nei progetti di servizio.
- Confronta i vantaggi relativi dell'archiviazione a blocchi, di file e di oggetti.
- Opzioni di archiviazione per i workload HPC in Google Cloud.