Este documento mostra-lhe como criar e usar credenciais para aceder ao Cloud Storage através do VM Runtime no GDC. Um plug-in do Cloud Storage permite-lhe usar o importador de dados contentorizados (CDI) para importar imagens de VMs de contentores do Cloud Storage. Em seguida, pode criar discos virtuais a partir destas imagens no Cloud Storage e anexá-los a VMs que são executadas no seu cluster. A CDI é ativada automaticamente num cluster que executa o VM Runtime no GDC.
Antes de começar
Para preencher este documento, precisa de ter acesso aos seguintes recursos:
- Acesso à versão 1.12.0 do Google Distributed Cloud (anthosBareMetalVersion: 1.12.0) ou a um cluster superior. Pode usar qualquer tipo de cluster capaz de executar cargas de trabalho. Se necessário, experimente o Google Distributed Cloud no Compute Engine ou consulte a vista geral da criação de clusters.
- Uma conta de serviço e uma chave de conta de serviço que quer usar para o acesso ao Cloud Storage. Se necessário, configure uma conta de serviço que possa aceder a um contentor do Cloud Storage.
Vista geral das credenciais
Para aceder ao Cloud Storage, usa uma conta de serviço que faculta credenciais ao contentor de armazenamento. A conta de serviço requer privilégios diferentes para aceder com êxito a um contentor de armazenamento:
- Contentor de armazenamento público: usa uma conta de serviço para autoidentificação, mas não são necessárias autorizações específicas.
- Contentor de armazenamento privado: a conta de armazenamento requer o privilégio de visualizador ou administrador para o contentor de armazenamento.
Existem duas formas de fornecer as credenciais da conta de serviço à CDI:
- Configure as Credenciais padrão da aplicação (ADC) da Google nos nós no seu cluster. Para mais informações, consulte o artigo Configure o ADC para um ambiente no local ou outro fornecedor de nuvem.
- Forneça um segredo que contenha a chave da conta de serviço para aceder ao Cloud Storage. O resto deste documento mostra-lhe como criar uma chave e um segredo da conta de serviço.
Crie um Secret
Transfere a chave da conta de serviço para o Kubernetes através de um segredo criado no espaço de nomes do volume de dados. A secção data do Secret contém uma entrada para creds-gcp.json. O valor são os dados codificados em base64 do ficheiro de chave da conta de serviço. A CLI cria estes dados codificados em base64 automaticamente. Se usar um manifesto YAML para criar o segredo, comece por criar um hash base64 do conteúdo do ficheiro de chave da conta de serviço.
CLI
- Crie o Secret com - kubectl:- kubectl create secret generic SECRET_NAME \ --from-file=creds-gcp.json=SERVICE_ACCOUNT_KEY_PATH \ --namespace NAMESPACE_NAME- Substitua os seguintes valores: - SECRET_NAME: o nome do seu segredo.
- SERVICE_ACCOUNT_KEY_PATH: o caminho para o ficheiro de chave da conta de serviço.
- NAMESPACE_NAME: o espaço de nomes do seu segredo.- Crie o seu segredo no cluster onde o CDI é executado e no mesmo espaço de nomes que o volume de dados. A CDI é ativada automaticamente num cluster que executa o VM Runtime no GDC.
 
 
Manifesto
- Crie um - Secretmanifesto, como my-secret.yaml, no editor da sua preferência:- nano my-secret.yaml
- Copie e cole o seguinte manifesto YAML: - apiVersion: v1 data: creds-gcp.json: BASE64_SERVICE_ACCOUNT_FILE kind: Secret metadata: name: SECRET_NAME namespace: NAMESPACE_NAME type: Opaque- Substitua os seguintes valores: - BASE64_SERVICE_ACCOUNT_FILE: o hash base64 do conteúdo do ficheiro de chave da conta de serviço.
- SECRET_NAME: o nome do seu segredo.
- NAMESPACE_NAME: o espaço de nomes do seu segredo.- Crie o seu segredo no cluster onde o CDI é executado e no mesmo espaço de nomes que o volume de dados. A CDI é ativada automaticamente num cluster que executa o VM Runtime no GDC.
 
 
- Guarde e feche o manifesto secreto no editor. 
- Aplique o manifesto Secret com - kubectl:- kubectl apply -f my-secret.yaml
Encaminhe um segredo existente
Em vez de criar um Secret, pode criar um SecretForwarder para encaminhar
um Secret existente para utilização. O SecretForwarder suporta o encaminhamento de segredos
no mesmo cluster ou entre clusters, como do cluster de administrador para um
cluster de utilizador.
Para usar o segredo de destino para aceder ao Cloud Storage, o segredo de origem tem de ter uma chave creds-gcp.json na respetiva secção data.
No mesmo cluster
O exemplo seguinte do manifesto SecretForwarder encaminha um segredo no mesmo cluster:
apiVersion: baremetal.cluster.gke.io/v1
kind: SecretForwarder
metadata:
  name: cdi-gcs
  namespace: default
spec:
  inClusterTargetSecrets:
    name: gcs-sa
    namespaces:
    - default
  sourceSecret:
    name: gke-connect
    namespace: anthos-creds
Este exemplo faz o seguinte:
- Cria um SecretForwarderdenominadocdi-gcsno espaço de nomesdefault.
- Encaminha o segredo denominado gke-connectno espaço de nomesanthos-credspara um novo segredo denominadogcs-sano espaço de nomesdefault.
- Cria o novo segredo no mesmo cluster.
Para encaminhar um segredo no mesmo cluster, conclua os seguintes passos:
- Crie um - SecretForwardermanifesto, como my-forwarded-secret.yaml, no editor à sua escolha:- nano my-forwarded-secret.yaml
- Copie e cole o seguinte manifesto YAML: - apiVersion: baremetal.cluster.gke.io/v1 kind: SecretForwarder metadata: name: SECRET_FORWARDER_NAME namespace: NAMESPACE_NAME spec: inClusterTargetSecrets: name: TARGET_SECRET_NAME namespaces: - TARGET_NAMESPACE_NAME sourceSecret: name: SOURCE_SECRET_NAME namespace: SOURCE_NAMESPACE_NAME- Substitua os seguintes valores: - SECRET_FORWARDER_NAME: o nome do seu SecretForwarder.
- NAMESPACE_NAME: o espaço de nomes do seu SecretForwarder.
- TARGET_SECRET_NAME: o nome do seu novo segredo.
- TARGET_NAMESPACE_NAME: os namespaces do seu novo segredo.- Crie o seu segredo no cluster onde o CDI é executado e no mesmo espaço de nomes que o volume de dados. A CDI é ativada automaticamente num cluster que executa o VM Runtime no GDC.
 
- SOURCE_SECRET_NAME: o nome do segredo de origem para encaminhar.
- SOURCE_NAMESPACE_NAME: o espaço de nomes da sua origem Segredo a encaminhar.
 
- Guarde e feche o manifesto - SecretForwarderno editor.
- Aplique o manifesto - SecretForwarderatravés de- kubectl:- kubectl apply -f my-forwarded-secret.yaml
Em vários clusters
O exemplo seguinte SecretForwarder manifest encaminha um segredo entre clusters:
apiVersion: baremetal.cluster.gke.io/v1
kind: SecretForwarder
metadata:
  name: cdi-gcs
  namespace: cluster-user1
spec:
  RemoteClusterTargetSecrets:
    name: gcs-sa
    namespaces:
    - default
  sourceSecret:
    name: gke-connect
    namespace: anthos-creds
Este exemplo faz o seguinte:
- Cria um SecretForwarderdenominadocdi-gcsno espaço de nomescluster-user1.
- Encaminha o segredo denominado gke-connectno espaço de nomesanthos-credspara um novo segredo denominadogcs-sano espaço de nomesdefault.
- Cria o novo segredo no cluster denominado user1.
Para encaminhar um segredo no mesmo cluster, conclua os seguintes passos:
- Crie um - SecretForwardermanifesto, como my-forwarded-secret.yaml, no editor à sua escolha:- nano my-forwarded-secret.yaml
- Copie e cole o seguinte manifesto YAML: - apiVersion: baremetal.cluster.gke.io/v1 kind: SecretForwarder metadata: name: SECRET_FORWARDER_NAME namespace: NAMESPACE_NAME spec: RemoteClusterTargetSecrets: name: TARGET_SECRET_NAME namespaces: - TARGET_NAMESPACE_NAME sourceSecret: name: SOURCE_SECRET_NAME namespace: SOURCE_NAMESPACE_NAME- Substitua os seguintes valores: - SECRET_FORWARDER_NAME: o nome do seu SecretForwarder no cluster remoto.
- NAMESPACE_NAME: o espaço de nomes do seu SecretForwarder no cluster remoto.
- TARGET_SECRET_NAME: o nome do novo segredo no cluster remoto.
- TARGET_NAMESPACE_NAME: os espaços de nomes do novo segredo no cluster remoto.- Crie o seu segredo no cluster onde o CDI é executado e no mesmo espaço de nomes que o volume de dados. A CDI é ativada automaticamente num cluster que executa o VM Runtime no GDC.
 
- SOURCE_SECRET_NAME: o nome do segredo de origem para encaminhar.
- SOURCE_NAMESPACE_NAME: o espaço de nomes da sua origem Segredo a encaminhar.
 
- Guarde e feche o manifesto - SecretForwarderno editor.
- Aplique o manifesto no cluster de administrador com - kubectlcom o- KUBECONFIGdo cluster de administrador:- SecretForwarder- kubectl apply -f my-forwarded-secret.yaml
Use um segredo para importar uma imagem
Para usar o segredo para importar uma imagem do Cloud Storage quando cria um disco virtual e uma VM, conclua os seguintes passos:
- Crie um manifesto que defina um - VirtualMachineDiske- VirtualMachine, como my-vm.yaml,no editor da sua preferência:- nano my-vm.yaml
- Copie e cole a seguinte definição YAML: - apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: VM_NAME-boot-dv spec: size: 20Gi source: gcs: url: IMAGE_URL secretRef: SECRET_NAME --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv- Substitua os seguintes valores: - VM_NAME– o nome da sua VM.
- IMAGE_URL– o URL da imagem de disco Armazenamento na nuvem, como- gs://my-images-bucket/disk.qcow2.
- SECRET_NAME: o nome do seu segredo.
 
- Guarde e feche o manifesto no editor. 
- Crie a VM e o disco com - kubectl:- kubectl apply -f my-vm.yaml