Configurare i volumi dell'agente Filestore

Prima di creare pool di volumi o eseguire il provisioning dei volumi, devi configurare il networking Virtual Private Cloud (VPC) utilizzando Private Service Connect (PSC), attivare le API richieste e concedere i ruoli IAM appropriati.

Crea un progetto e abilita le API

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Filestore APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Filestore APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare i volumi dell'agente Filestore, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

  • Configura le norme di connessione del servizio e il networking VPC: Compute Network Admin (roles/compute.networkAdmin)
  • Visualizza e gestisci le istanze Filestore e le risorse correlate, inclusi i pool di volumi e i volumi degli agenti: Cloud Filestore Editor (roles/file.editor)

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Inizializza il service agent

Se non hai creato un'istanza Filestore nel tuo progetto, inizializza l'agente di servizio Filestore eseguendo il seguente comando:

gcloud beta services identity create \
    --service=file.googleapis.com \
    --project=PROJECT_ID

Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

Concedi le autorizzazioni al service agent

Per configurare i volumi dell'agente Filestore, concedi il ruolo Editor Cloud Filestore (roles/file.editor) all'agente di servizio Filestore:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:service-PROJECT_NUMBER@cloud-filer.iam.iam.gserviceaccount.com" \
    --role="roles/file.editor"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • PROJECT_NUMBER: il numero di progetto del tuo progettoGoogle Cloud .

Configura il networking Private Service Connect

I volumi dell'agente Filestore utilizzano Private Service Connect per connettere l'infrastruttura di archiviazione gestita direttamente alla tua rete VPC. Private Service Connect garantisce una comunicazione privata, a larghezza di banda elevata e a bassa latenza senza richiedere indirizzi IP pubblici o configurazioni di peering di rete VPC.

Per creare una policy di connessione al servizio, esegui questo comando:

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --project=PROJECT_ID \
    --region=REGION \
    --network=projects/PROJECT_ID/global/networks/VPC_NETWORK \
    --subnets=SUBNET_NAME \
    --service-class=google-cloud-filestore

Sostituisci quanto segue:

  • POLICY_NAME: un nome per la policy di connessione al servizio, ad esempio filestore-agent-psc-policy.
  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • REGION: la regione in cui si troveranno il pool di volumi e i carichi di lavoro, ad esempio us-central1.
  • VPC_NETWORK: il nome di una rete VPC esistente.
  • SUBNET_NAME: il nome di una subnet VPC normale nella regione specificata in cui devono essere allocati gli indirizzi IP dell'endpoint Private Service Connect. Un esempio può essere la subnet predefinita con il flag --purpose impostato su PRIVATE.

Crea un pool di volumi e una StorageClass

Un pool di volumi fornisce la capacità di archiviazione e le IOPS condivise per i volumi degli agenti. Per eseguire il provisioning dinamico dei volumi dal pool di volumi in GKE, crea il pool di volumi e poi definisci un StorageClass Kubernetes che faccia riferimento a questo pool.

Crea un pool di volumi

Per creare un pool di volumi di esempio, invia una richiesta POST HTTP all'endpoint volumePools.create:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d '{
      "description": "Sample volume pool for agent volumes",
      "network": "projects/PROJECT_ID/global/networks/VPC_NETWORK",
      "defaultVolumeQuotaMib": 2048,
    }' \
    "https://file.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/volumePools?volumePoolId=VOLUME_POOL_ID"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • VPC_NETWORK: il nome della tua rete VPC abilitata per PSC.
  • LOCATION: la regione in cui viene deployato il pool di volumi, ad esempio us-central1.
  • VOLUME_POOL_ID: un identificatore per il pool di volumi, ad esempio my-volume-pool.

Per saperne di più, consulta Crea e gestisci pool di volumi.

Crea una StorageClass

Crea un manifest StorageClass denominato volume-pool-sc.yaml che faccia riferimento al tuo pool di volumi:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: volume-pool-sc
provisioner: filestore.csi.storage.gke.io
volumeBindingMode: Immediate
reclaimPolicy: Delete
allowVolumeExpansion: true
parameters:
  volume-pool: "projects/<var>PROJECT_ID</var>/locations/<var>LOCATION</var>/volumePools/<var>VOLUME_POOL_ID</var>"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • LOCATION: la regione in cui viene implementato il pool di volumi.
  • VOLUME_POOL_ID: l'identificatore del pool di volumi.

Se hai un cluster GKE esistente con il driver CSI Filestore installato, applica StorageClass:

kubectl apply -f volume-pool-sc.yaml

In caso contrario, applica questo manifest dopo aver configurato il cluster in Configura l'ambiente GKE per i volumi dell'agente Filestore.

Passaggi successivi