Configurar volumes de agente do Filestore

Antes de criar pools ou provisionar volumes, configure a rede de nuvem privada virtual (VPC) usando o Private Service Connect (PSC), ative as APIs necessárias e conceda as funções apropriadas do IAM.

Criar um projeto e ativar APIs

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  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

Funções exigidas

Para receber as permissões necessárias para configurar volumes do agente do Filestore, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Inicializar o agente de serviço

Se você não criou uma instância do Filestore no seu projeto, inicialize o agente de serviço do Filestore executando o seguinte comando:

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

Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud.

Conceder permissões ao agente de serviço

Para configurar volumes do agente do Filestore, conceda o papel Editor do Cloud Filestore (roles/file.editor) ao agente de serviço do Filestore:

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

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • PROJECT_NUMBER: o número do projetoGoogle Cloud .

Configurar a rede do Private Service Connect

Os volumes do agente do Filestore usam o Private Service Connect para conectar a infraestrutura de armazenamento gerenciado diretamente à sua rede VPC. O Private Service Connect garante uma comunicação privada, de alta largura de banda e baixa latência sem exigir endereços IP públicos ou configurações de peering de rede VPC.

Para criar uma política de conexão de serviço, execute o seguinte 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

Substitua:

  • POLICY_NAME: um nome para a política de conexão de serviço, como filestore-agent-psc-policy.
  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • REGION: a região em que o pool de volumes e as cargas de trabalho vão residir, como us-central1.
  • VPC_NETWORK: o nome de uma rede VPC existente.
  • SUBNET_NAME: o nome de uma sub-rede VPC regular na região especificada em que os endereços IP do endpoint do Private Service Connect serão alocados. Um exemplo é a sub-rede padrão com a flag --purpose definida como PRIVATE.

Criar um pool de volumes e uma StorageClass

Um pool de volumes oferece a capacidade de armazenamento compartilhado e as IOPS para volumes de agentes. Para provisionar dinamicamente volumes do seu pool de volumes no GKE, crie o pool e defina um StorageClass do Kubernetes que faça referência a ele.

Criar um pool de volumes

Para criar um pool de volumes de amostra, envie uma solicitação HTTP POST ao 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"

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • VPC_NETWORK: o nome da rede VPC habilitada para PSC.
  • LOCATION: a região em que o pool de volumes está implantado, como us-central1.
  • VOLUME_POOL_ID: um identificador para o pool de volumes, como my-volume-pool.

Para mais informações, consulte Criar e gerenciar pools de volumes.

Criar um StorageClass

Crie um manifesto StorageClass chamado volume-pool-sc.yaml que faça referência ao seu pool de volumes:

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>"

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • LOCATION: a região em que o pool de volumes está implantado.
  • VOLUME_POOL_ID: o identificador do seu pool de volumes.

Se você tiver um cluster do GKE com o driver CSI do Filestore instalado, aplique o StorageClass:

kubectl apply -f volume-pool-sc.yaml

Caso contrário, aplique esse manifesto depois de configurar o cluster em Configurar o ambiente do GKE para volumes do agente do Filestore.

A seguir