Aceda ao armazenamento persistente

Esta página explica como criar e gerir o armazenamento persistente para cargas de trabalho de contentores no seu universo soberano isolado do Google Distributed Cloud (GDC). O armazenamento persistente oferece à sua aplicação identidades consistentes e nomes de anfitriões estáveis, independentemente de onde as respetivas cargas de trabalho são agendadas.

Esta página destina-se a programadores no grupo de operadores de aplicações, que são responsáveis pela criação de cargas de trabalho de aplicações para a respetiva organização. Para mais informações, consulte Públicos-alvo para a documentação do GDC isolado.

Antes de começar

Para concluir as tarefas neste documento, tem de pedir as autorizações necessárias e preparar o seu ambiente.

Peça funções de IAM

Tem de ter funções específicas para receber as autorizações de que precisa para aceder ao armazenamento persistente. As funções necessárias dependem de estar a trabalhar num cluster partilhado com âmbito da organização ou num cluster padrão com âmbito do projeto. Para mais informações, consulte o artigo Configurações de clusters do Kubernetes.

Funções do cluster partilhado

Para criar, eliminar, editar ou ver volumes persistentes num cluster partilhado, peça ao administrador de IAM do projeto para lhe atribuir a função de Administrador do espaço de nomes (namespace-admin). Esta função está associada ao espaço de nomes do seu projeto.

Funções do cluster padrão

Para criar, eliminar, editar ou ver volumes persistentes num cluster padrão, peça ao administrador de IAM do projeto para lhe atribuir a função de Programador do cluster (cluster-developer). Esta função está associada ao espaço de nomes do seu projeto.

Prepare o seu ambiente

Para executar comandos num cluster do Kubernetes através da API, certifique-se de que tem os seguintes recursos:

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

  • Inicie sessão e gere o ficheiro kubeconfig para o cluster do Kubernetes.

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

Crie um volume persistente

As instruções seguintes mostram como criar um volume com a StorageClass standard-rwo do GDC. Para mais informações sobre os recursos StorageClass disponíveis no GDC, consulte o artigo Armazenamento persistente para contentores.

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

    • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster.

    • NAMESPACE: o espaço de nomes no qual criar o PVC. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.

    • PVC_NAME: o nome do objeto PersistentVolumeClaim.

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

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

    O resultado é semelhante ao seguinte:

    NAME       CAPACITY   ACCESS MODES   STATUS      CLAIM     STORAGECLASS   AGE
    pvc-uuid   10Gi       RWO            Bound       pvc-name  standard-rwo   60s
    
  3. Configure as cargas de trabalho de contentores para usarem o PVC. Segue-se um exemplo de um 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 que criou.

Expanda 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 do volume suportado é de 14,5 Ti.

  1. Atualize o volume para um tamanho maior no ficheiro 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 o seguinte:

    • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster.

    • NAMESPACE: o espaço de nomes no qual o recurso PVC existe. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.

    • PVC_NAME: o nome do PVC para o qual está a aumentar o tamanho do armazenamento.

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

  2. Verifique o estado dos PVs atualizados no cluster:

    kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
    

O que se segue?