Acessar o armazenamento permanente

Nesta página, explicamos como criar e gerenciar o armazenamento permanente para cargas de trabalho de contêineres no seu universo soberano isolado do Google Distributed Cloud (GDC). O armazenamento permanente fornece ao aplicativo identidades consistentes e nomes de host estáveis, independente de onde as cargas de trabalho são programadas.

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

Antes de começar

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

  1. Localize o nome do cluster do Kubernetes ou pergunte ao administrador da plataforma.

  2. Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes se você não tiver um.

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

Para receber as permissões necessárias para criar um volume permanente, peça ao administrador do IAM da organização para conceder a você o papel de administrador do namespace (namespace-admin) no namespace do projeto.

Criar um volume permanente

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

  1. Crie um PersistentVolumeClaim 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 do projeto em que a PVC será criada.

    • PVC_NAME: o nome do objeto PersistentVolumeClaim.

  2. Os objetos PersistentVolume (PV) são provisionados dinamicamente. Verifique o status dos novos PVs no cluster do Kubernetes:

    kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
    

    O resultado será assim:

    NAME       CAPACITY   ACCESS MODES   STATUS      CLAIM     STORAGECLASS   AGE
    pvc-uuidd  10Gi       RWO            Bound       pvc-name  standard-rwo   60s
    
  3. Configure suas cargas de trabalho de 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: apps/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 de 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 aceito é 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 do projeto em que o recurso PVC existe.

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

    • VOLUME_SNAPSHOT_SIZE: a quantidade de armazenamento a ser aumentada, como 50Gi.

  2. Verifique o status dos PVs atualizados no cluster:

    kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
    

A seguir