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_KUBECONFIGnestas 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.
Crie um recurso
PersistentVolumeClaim(PVC) e configure-o com um modo de acessoReadWriteOncee uma classe de armazenamentostandard-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 EOFSubstitua:
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 objetoPersistentVolumeClaim.
Confirme se o objeto PVC está disponível:
kubectl get pvc --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \ --namespace NAMESPACEO resultado será assim:
NAME CAPACITY ACCESS MODES STATUS CLAIM STORAGECLASS AGE pvc-uuid 10Gi RWO Bound pvc-name standard-rwo 60sConfigure as cargas de trabalho do contêiner para usar o PVC. Confira a seguir um exemplo de pod
nginxque usa um PVCstandard-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 EOFSubstitua
PVC_NAMEpelo 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.
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 EOFSubstitua:
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, como50Gi.
Verifique o status dos PVs atualizados no cluster:
kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
A seguir
- Visão geral das cargas de trabalho de contêiner
- Criar cargas de trabalho com estado
- Criar snapshots de volume