Aceda ao armazenamento persistente

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

Esta página destina-se a programadores no grupo de operadores de aplicações, que são responsáveis por criar cargas de trabalho de aplicações para a respetiva organização. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.

Antes de começar

Para executar comandos num cluster do Kubernetes, certifique-se de que tem os seguintes recursos:

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

  2. Inicie sessão e gere o ficheiro kubeconfig para o cluster Kubernetes, se não tiver um.

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

Para receber as autorizações necessárias para criar um volume persistente, peça ao administrador de IAM da sua organização para lhe conceder a função de administrador do espaço de nomes (namespace-admin) no espaço de nomes do seu projeto.

Crie um volume persistente

As instruções seguintes mostram como criar um volume através da GDC standard-rwo StorageClass. Para mais informações sobre os recursos StorageClass disponíveis no GDC, consulte Armazenamento persistente para contentores.

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

    • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster.

    • NAMESPACE: o espaço de nomes do projeto no qual criar o PVC.

    • PVC_NAME: o nome do objeto PersistentVolumeClaim

  2. Os objetos PersistentVolume (PV) são aprovisionados dinamicamente. Verifique o estado dos novos volumes persistentes no seu cluster do Kubernetes:

    kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
    

    O resultado é semelhante ao 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 contentor para usar o PVC. Segue-se um exemplo de um agrupamento 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 de 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 do projeto no qual o recurso PVC existe.

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

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

  2. Verifique o estado dos PVs atualizados no seu cluster:

    kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
    

O que se segue?