Acessar o armazenamento permanente

O armazenamento permanente no dispositivo do Google Distributed Cloud (GDC) com isolamento físico permite preservar os dados do contêiner de maneira independente dos ciclos de vida do pod. É possível reivindicar volumes com recursos PersistentVolumeClaim (PVC) e expandir a capacidade para manter o estado em reinicializações e reprogramações.

Este documento é destinado a desenvolvedores do grupo de operadores de aplicativos que criam cargas de trabalho para a organização.

Antes de começar

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

Solicitar papéis do IAM

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

Preparar o ambiente

Para executar comandos no cluster do Kubernetes em bare metal pré-configurado, verifique se você tem os seguintes recursos:

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

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

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

Criar um volume permanente

As instruções a seguir mostram como criar um volume usando o standard-rwo StorageClass do GDC. 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 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:

    • CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster do Kubernetes.

    • 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 CLUSTER_KUBECONFIG
    

    O resultado será o seguinte:

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

    kubectl --kubeconfig 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 que você criou.

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

    • CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster do Kubernetes.

    • NAMESPACE: o namespace do projeto em que o recurso de PVC existe.

    • PVC_NAME: o nome do PVC em que você está aumentando o tamanho do armazenamento.

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

  2. Verifique o status dos PVs atualizados no cluster:

    kubectl get pv --kubeconfig CLUSTER_KUBECONFIG
    

A seguir