Acessar o armazenamento permanente

Esta página explica como criar e gerenciar o armazenamento permanente para cargas de trabalho de contêiner no universo soberano isolado do Google Distributed Cloud (GDC, na sigla em inglês). O armazenamento permanente fornece à sua aplicação identidades consistentes e nomes de host estáveis, independentemente de onde as cargas de trabalho são programadas.

Esta página é destinada a desenvolvedores do grupo de operadores de aplicativos, responsáveis por criar cargas de trabalho de aplicativos para a organização. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

Antes de começar

Para concluir as tarefas neste documento, peça as permissões necessárias e prepare seu ambiente.

Solicitar papéis do IAM

Você precisa de papéis específicos para receber as permissões necessárias para acessar o armazenamento permanente. Os papéis necessários dependem de você estar trabalhando em um cluster compartilhado com escopo da organização ou em um cluster padrão com escopo do projeto. Para mais informações, consulte Configurações de cluster do Kubernetes.

Papéis de cluster compartilhado

Para criar, excluir, editar ou visualizar volumes permanentes em um cluster compartilhado, peça ao administrador do IAM do projeto para conceder a você o papel de administrador do namespace (namespace-admin). Esse papel está vinculado ao namespace do projeto.

Papéis de cluster padrão

Para criar, excluir, editar ou visualizar volumes permanentes em um cluster padrão, peça ao administrador do IAM do projeto para conceder a você o papel de desenvolvedor do cluster (cluster-developer). Esse papel está vinculado ao namespace do projeto.

Preparar o ambiente

Para executar comandos em um cluster do Kubernetes usando a API, verifique se você tem os seguintes recursos:

  • Localize o nome do cluster do Kubernetes ou pergunte a um membro do grupo de administradores da plataforma.

  • Faça login e gere o arquivo kubeconfig do cluster do Kubernetes.

  • Use o caminho kubeconfig do cluster do Kubernetes para substituir KUBERNETES_CLUSTER_KUBECONFIG nestas instruções.

Criar um volume permanente

As instruções a seguir mostram como criar um volume usando a StorageClass standard-rwo do GDC. Para mais informações sobre os recursos StorageClass disponíveis no GDC, consulte Armazenamento permanente para contêineres.

  1. Crie um recurso PersistentVolumeClaim (PVC) e configure-o com um modo de acesso ReadWriteOnce e uma classe de armazenamento standard-rwo:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: standard-rwo
    EOF
    

    Substitua:

    • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster.

    • NAMESPACE: o namespace em que o PVC será criado. Para clusters compartilhados, esse precisa ser um namespace do projeto. Para clusters padrão, pode ser qualquer namespace.

    • PVC_NAME: o nome do objeto PersistentVolumeClaim.

  2. Confirme se o objeto PVC está disponível:

    kubectl get pvc --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE
    

    O resultado será assim:

    NAME       CAPACITY   ACCESS MODES   STATUS      CLAIM     STORAGECLASS   AGE
    pvc-uuid   10Gi       RWO            Bound       pvc-name  standard-rwo   60s
    
  3. Configure as cargas de trabalho do contêiner para usar o PVC. Confira a seguir um exemplo de pod nginx que usa um PVC standard-rwo:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: Pod
    metadata:
      name: web-server-deployment
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: data
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: PVC_NAME
    EOF
    

    Substitua PVC_NAME pelo PVC criado.

Expandir a capacidade do volume

Para aumentar a capacidade de um objeto PersistentVolumeClaim, atualize o campo spec.resources.storage para a nova capacidade. O tamanho máximo de volume compatível é de 14,5 Ti.

  1. Atualize o volume para um tamanho maior no arquivo de manifesto do objeto PersistentVolumeClaim:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: VOLUME_STORAGE_SIZE
    EOF
    

    Substitua:

    • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster.

    • NAMESPACE: o namespace em que o recurso PVC existe. Para clusters compartilhados, esse precisa ser um namespace do projeto. Para clusters padrão, pode ser qualquer namespace.

    • PVC_NAME: o nome do PVC para o qual você está aumentando o tamanho do armazenamento.

    • VOLUME_SNAPSHOT_SIZE: o valor do tamanho do armazenamento a ser aumentado, como 50Gi.

  2. Verifique o status dos PVs atualizados no cluster:

    kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
    

A seguir