Início rápido: aceda a contentores do Cloud Storage com o controlador CSI do FUSE
Neste guia de início rápido, vai saber como aceder a contentores do Cloud Storage a partir de uma aplicação do Google Kubernetes Engine (GKE) como se fossem sistemas de ficheiros locais. Este início rápido fornece um manifesto do Kubernetes de exemplo para criar um pod que monta o contentor e mostra como interagir com o conteúdo do contentor através do sistema de ficheiros do pod.
Esta página destina-se a programadores, especialistas em armazenamento e qualquer outra pessoa que queira aprovisionar e gerir recursos na nuvem, e implementar cargas de trabalho. Para saber mais sobre as funções comuns, consulte o artigo Funções e tarefas comuns de utilizadores do GKE.
Antes de ler esta página, certifique-se de que conhece o Kubernetes e o controlador CSI do FUSE do Cloud Storage.
Este início rápido usa o modo GKE Autopilot. Se quiser usar o modo padrão, consulte o artigo Configure o controlador CSI FUSE do Cloud Storage para o GKE.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the GKE and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the GKE and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Make sure that you have the following role or roles on the project: Kubernetes Engine Admin, Storage Admin, Service Account User
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Aceder ao IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.
- Na lista Selecionar uma função, selecione uma função.
- Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
- Clique em Guardar.
Na Google Cloud consola, aceda à página Criar um cluster do Autopilot.
Em Noções básicas de cluster, faça o seguinte:
No campo Nome, introduza um nome para o cluster.
Mantenha os valores predefinidos para as restantes definições.
Para criar o cluster, clique em Criar.
- Na Google Cloud consola, aceda à página Recipientes do Cloud Storage.
Clique em
Criar.Na página Criar um contentor, na secção Começar, faça o seguinte:
Introduza um nome globalmente exclusivo para o seu contentor que cumpra os requisitos de nomenclatura de contentores.
Mantenha os valores predefinidos para as restantes definições.
Para criar o contentor, clique em Criar.
- Na Google Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor que acabou de criar.
No separador Objetos do contentor, faça uma das seguintes ações:
Arraste ficheiros do ambiente de trabalho ou do gestor de ficheiros para o painel principal na consola Google Cloud .
Clique no botão Carregar ficheiros. Na caixa de diálogo apresentada, selecione os ficheiros que quer carregar e clique em Abrir.
Defina o projeto predefinido onde quer implementar o pod:
gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo ID do seu projeto.Crie e aplique o manifesto do pod com o seguinte conteúdo:
cat << EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: gcsfuse-test namespace: default annotations: gke-gcsfuse/volumes: "true" spec: terminationGracePeriodSeconds: 60 containers: - image: busybox name: busybox command: ["sleep"] args: ["infinity"] volumeMounts: - name: gcsfuse-test mountPath: /data readOnly: true serviceAccountName: default volumes: - name: gcsfuse-test csi: driver: gcsfuse.csi.storage.gke.io volumeAttributes: bucketName: BUCKET_NAME mountOptions: "implicit-dirs" EOF
- Substitua
BUCKET_NAME
pelo nome do contentor do Cloud Storage. - Se estiver a usar um espaço de nomes diferente ou uma conta de serviço, substitua os campos
namespace
eserviceAccountName
em conformidade.
O conteúdo deste manifesto inicia um pod denominado
gcsfuse-test
que monta o contentor no respetivo caminho/data
.- Substitua
Verifique se o Pod está em execução:
kubectl get pod gcsfuse-test
O resultado é semelhante ao seguinte:
NAME READY STATUS RESTARTS AGE gcsfuse-test 2/2 Running 0 12s
O controlador CSI FUSE do Cloud Storage associa um contentor sidecar no seu pod para gerir as interações com o Cloud Storage.
Se o Pod não estiver em execução, pode obter os registos de eventos para ajudar a diagnosticar o problema executando o comando
kubectl describe pod gcsfuse-test
. Para mais informações, consulte a secção Resolução de problemas no GitHub.Depois de o Pod estar em execução, pode explorar o respetivo sistema de ficheiros:
kubectl exec -it gcsfuse-test -- find /data
Crie um cluster do GKE Autopilot
Crie um contentor do Cloud Storage
Carregue objetos para o seu contentor do Cloud Storage
Configure o acesso ao seu contentor do Cloud Storage
Para se certificar de que o seu contentor do Cloud Storage está acessível ao cluster do GKE, siga os passos em Configure o acesso a contentores do Cloud Storage.
Configure o Cloud Shell
In the Google Cloud console, activate Cloud Shell.
É iniciada uma sessão do Cloud Shell e é apresentado um pedido de linha de comandos. A sessão pode demorar alguns segundos a ser inicializada.
Implemente um pod para aceder ao seu contentor do Cloud Storage através do FUSE
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos que usou neste tutorial, elimine o pod:
kubectl delete pod gcsfuse-test
O que se segue?
-