O mecanismo de volume dinâmico simplifica o gerenciamento do ciclo de vida do armazenamento ao criar e montar automaticamente um disco em nuvem dedicado para cada réplica da aplicação. Essa abordagem é ideal para cargas de trabalho intensivas em E/S e sensíveis à latência, como bancos de dados e middleware.
Como funciona
Um StatefulSet utiliza discos em nuvem como volumes de armazenamento dinâmico por meio do seguinte processo:
Defina um modelo. Crie ou utilize uma StorageClass padrão como modelo para a criação dinâmica de discos em nuvem. A StorageClass especifica parâmetros essenciais, como tipo de disco, desempenho e política de recuperação.
-
Declare os requisitos de armazenamento na aplicação.
No StatefulSet, defina
volumeClaimTemplatese referencie a StorageClass para especificar a capacidade de armazenamento e o modo de acesso dos PVCs. Crie e monte os volumes de armazenamento automaticamente. Quando o StatefulSet cria um Pod, o sistema gera automaticamente um PVC exclusivo para esse Pod com base no modelo. Em seguida, o componente CSI cria um PV baseado na StorageClass, vincula o PV ao PVC e monta o disco em nuvem correspondente no Pod.
Pré-requisitos
Limitações de zona de disponibilidade: Exceto pelos discos em nuvem ESSD com redundância de zona, os demais tipos de disco só podem ser anexados a Pods na mesma zona de disponibilidade.
Limitações de família de tipos de instância: Alguns tipos de disco em nuvem só podem ser anexados a famílias de tipos de instância específicas.
-
Requisitos do componente CSI: Os componentes csi-plugin e csi-provisioner devem estar instalados.
Os componentes CSI são instalados por padrão. Verifique a página para garantir que eles ainda estejam instalados. Recomendamos atualizar os componentes CSI para a versão mais recente.
-
Limitações de nó virtual: Para usar um disco em nuvem em um nó virtual, seu cluster e o kube-scheduler devem atender aos seguintes requisitos de versão.
-
Limitações do Lingjun Node: Para utilizar um disco em nuvem em um Lingjun Node, é necessário atender aos seguintes requisitos.
Etapa 1: Escolher uma StorageClass
O ACK fornece várias StorageClasses padrão. Como não é possível modificar uma StorageClass após sua criação, você pode criar uma StorageClass manualmente caso as configurações padrão não atendam aos seus requisitos.
StorageClass padrão
Escolha uma das seguintes StorageClasses padrão e referencie seu nome no campo storageClassName da sua aplicação.
Nome da StorageClass | Tipo de disco provisionado |
| Esta StorageClass agenda o Pod antes de criar o disco em nuvem, evitando falhas de montagem devido a incompatibilidades de zona de disponibilidade ( |
| Provisiona um ESSD. O nível de desempenho padrão é PL1 e a capacidade mínima do disco é de 20 GiB. Importante Os ESSDs em um Cloud Box suportam apenas o nível de desempenho PL0. Você deve criar uma StorageClass manualmente e definir |
| Provisiona um disco SSD. A capacidade mínima do disco é de 20 GiB. |
| Provisiona um ultra disk. A capacidade mínima do disco é de 20 GiB. |
Execute kubectl describe sc <storageclass-name> para visualizar a configuração detalhada de uma StorageClass.
Criação manual
Kubectl
-
Crie um arquivo chamado
disk-sc.yaml.O exemplo a seguir mostra uma StorageClass que usa
volumeBindingMode: WaitForFirstConsumerpara atrasar a vinculação do PV.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: # Name of the StorageClass name: alicloud-disk-wait-for-first-consumer # Provisioner. This must be set to this value when using the Alibaba Cloud Disk CSI plug-in. provisioner: diskplugin.csi.alibabacloud.com parameters: # Cloud Disk type. The system attempts to create a disk in the specified order. type: cloud_auto,cloud_essd,cloud_ssd # File system type fstype: ext4 diskTags: "a:b,b:c" encrypted: "false" # Performance level for the ESSD performanceLevel: PL1 provisionedIops: "40000" burstingEnabled: "false" # Volume binding mode. WaitForFirstConsumer is recommended for multi-AZ scenarios. volumeBindingMode: WaitForFirstConsumer # Reclaim policy reclaimPolicy: Retain # Whether to allow volume expansion allowVolumeExpansion: true # Topology restrictions: Restricts disk creation to the specified availability zones. allowedTopologies: - matchLabelExpressions: - key: topology.diskplugin.csi.alibabacloud.com/zone values: # Replace with your availability zones - cn-hangzhou-i - cn-hangzhou-kA tabela a seguir descreve os principais parâmetros.
Parâmetro
Descrição
provisionerO provisionador. Este parâmetro obrigatório deve ser definido como
diskplugin.csi.alibabacloud.comao usar o plug-in CSI de disco da Alibaba Cloud.parameterstypeO tipo de disco em nuvem. Parâmetro obrigatório. Valores válidos incluem:
cloud_essd(padrão): ESSDcloud_auto: Disco em nuvem ESSD AutoPLcloud_essd_entry: Visão geral do Block Storagecloud_ssd: Disco SSDcloud_efficiency: Ultra diskelastic_ephemeral_disk_standard: Disco efêmero elástico padrãoelastic_ephemeral_disk_premium: Disco efêmero elástico premiumcloud_regional_disk_auto: Disco redundante colocalizado ESSD
É possível especificar uma lista de tipos separada por vírgulas, por exemplo,
type: cloud_ssd,cloud_essd,cloud_auto. O sistema tenta criar um disco na ordem especificada. O tipo final do disco depende de fatores como o tipo de instância do nó e os tipos de disco disponíveis na zona de disponibilidade.resourceGroupIdO grupo de recursos para o disco em nuvem. Padrão:
"".regionIdA região do disco em nuvem, que deve ser igual à região do cluster.
fstypeO sistema de arquivos para o disco em nuvem. Valores válidos:
ext4(padrão) exfs.mkfsOptionsOpções de formatação para o disco em nuvem, por exemplo,
mkfsOptions: "-O project,quota".diskTagsTags para o disco em nuvem. Por exemplo,
diskTags: "a:b,b:c". Também é possível usar o formatodiskTags/a: b. Requer a versão v1.30.3 ou posterior do componente CSI.encryptedEspecifica se o disco em nuvem deve ser criptografado. Padrão:
false.performanceLevelO nível de desempenho do ESSD. Valores válidos são
PL0,PL1(padrão),PL2ePL3.Quando usado com um Cloud Box, este valor deve ser definido como
PL0.volumeExpandAutoSnapshot(Obsoleto)Obsoleto desde a versão 1.31.4 do CSI.
provisionedIopsDefine os IOPS provisionados para um disco em nuvem ESSD AutoPL.
burstingEnabledPara um disco em nuvem ESSD AutoPL, especifica se o burst deve ser ativado. Padrão:
false.multiAttachEspecifica se o recurso de multi-attach deve ser ativado para o disco em nuvem. Padrão:
false.volumeBindingModeO modo de vinculação de volume para o disco em nuvem. Valores válidos:
Immediate(padrão): Cria o disco em nuvem antes de criar o Pod.WaitForFirstConsumer: Atrasa a vinculação. Agenda o Pod primeiro e depois cria o disco em nuvem na zona de disponibilidade do Pod.Em clusters multizona, recomenda-se usar
WaitForFirstConsumerpara evitar falhas de montagem que podem ocorrer se um disco em nuvem e seu nó estiverem em zonas de disponibilidade diferentes.Se você precisar agendar Pods para nós virtuais, o uso de uma StorageClass do tipo
WaitForFirstConsumernão é compatível com certos métodos de agendamento ou anotações específicas. Para mais informações, consulte O que fazer se um PVC permanecer no estado Pending quando um Pod com disco em nuvem for agendado para um nó virtual?.
reclaimPolicyA política de recuperação para o disco em nuvem.
Delete(padrão): Quando o PVC é excluído, o PV e o disco em nuvem subjacente também são excluídos.Retain: Quando o PVC é excluído, o PV e o disco em nuvem subjacente são retidos.Para evitar perda acidental de dados, recomendamos o uso da política
Retain.
allowVolumeExpansionSe definido como
true, permite a expansão online de discos em nuvem.allowedTopologiesRestringe o provisionamento do disco em nuvem a domínios topológicos específicos.
key: O rótulo do domínio de topologia. Valores suportados incluem:topology.diskplugin.csi.alibabacloud.com/zone: Umachavede topologia dedicada fornecida pelo plug-in CSI da Alibaba Cloud.alibabacloud.com/ecs-instance-id: Ao usar um disco efêmero elástico, você pode usar isso para especificar um nó.
values: Uma lista contendo IDs de zonas de disponibilidade ou de nós.
-
Crie a StorageClass.
kubectl create -f disk-sc.yaml -
Verifique a StorageClass.
kubectl get scA saída mostra que a StorageClass foi criada com o modo de vinculação
WaitForFirstConsumer.NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE alicloud-disk-wait-for-first-consumer diskplugin.csi.alibabacloud.com Retain WaitForFirstConsumer true 10s
Console
Na página Clusters ACK, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Clique em Create, selecione Cloud Disk como Volume Type, configure os parâmetros e clique em Create.
Parâmetro
Descrição
Parameters
Parâmetro padrão:
type.O tipo de disco em nuvem. Parâmetro obrigatório. Valores válidos incluem:
cloud_essd(padrão): ESSDcloud_auto: Disco em nuvem ESSD AutoPLcloud_essd_entry: Visão geral do Block Storagecloud_ssd: Disco SSDcloud_efficiency: Ultra diskelastic_ephemeral_disk_standard: Disco efêmero elástico padrãoelastic_ephemeral_disk_premium: Disco efêmero elástico premiumcloud_regional_disk_auto: Disco redundante colocalizado ESSD
É possível especificar uma lista de tipos separada por vírgulas, por exemplo,
type: cloud_ssd,cloud_essd,cloud_auto. O sistema tenta criar um disco na ordem especificada. O tipo final do disco depende de fatores como o tipo de instância do nó e os tipos de disco disponíveis na zona de disponibilidade.
Reclaim policy
A política de recuperação para o disco em nuvem.
Delete(padrão): Quando o PVC é excluído, o PV e o disco em nuvem subjacente também são excluídos.Retain: Quando o PVC é excluído, o PV e o disco em nuvem subjacente são retidos.Para evitar perda acidental de dados, recomendamos o uso da política
Retain.
Binding Mode
O modo de vinculação de volume para o disco em nuvem. Valores válidos:
Immediate(padrão): Cria o disco em nuvem antes de criar o Pod.WaitForFirstConsumer: Atrasa a vinculação. Agenda o Pod primeiro e depois cria o disco em nuvem na zona de disponibilidade do Pod.Em clusters multizona, recomenda-se usar
WaitForFirstConsumerpara evitar falhas de montagem que podem ocorrer se um disco em nuvem e seu nó estiverem em zonas de disponibilidade diferentes.Se você precisar agendar Pods para nós virtuais, o uso de uma StorageClass do tipo
WaitForFirstConsumernão é compatível com certos métodos de agendamento ou anotações específicas. Para mais informações, consulte O que fazer se um PVC permanecer no estado Pending quando um Pod com disco em nuvem for agendado para um nó virtual?.
A nova StorageClass aparece na página StorageClasses.
Etapa 2: Criar uma aplicação com disco em nuvem
Esta seção usa um StatefulSet como exemplo para demonstrar como montar um volume de disco em nuvem.
Um disco em nuvem fornece armazenamento não compartilhado e, a menos que o multi-attach esteja ativado, pode ser montado em apenas um Pod por vez. Compartilhar um PVC em um Deployment de múltiplas réplicas pode impedir que novos Pods iniciem se o disco em nuvem já estiver em uso por outro Pod.
Se você ainda precisar usar um disco em nuvem com um Deployment, considere usar um disco em nuvem como volume efêmero. Para ativar o multi-attach, consulte Usar discos em nuvem baseados em NVMe com multi-attach e reserva.
-
Crie um arquivo chamado
statefulset.yaml.O exemplo a seguir cria um StatefulSet com dois Pods. Ele usa
volumeClaimTemplatespara criar e vincular automaticamente um volume persistente independente para cada Pod.apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: serviceName: "nginx" replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: # We recommend configuring the following securityContext to optimize mount performance. securityContext: fsGroup: 1000 fsGroupChangePolicy: "OnRootMismatch" containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 volumeMounts: # Mount the data volume to the /data directory in the container. # The name must match metadata.name defined in volumeClaimTemplates. - name: pvc-disk mountPath: /data # Define the PVC template. volumeClaimTemplates: - metadata: name: pvc-disk spec: # Access mode accessModes: [ "ReadWriteOnce" ] # Associate with the StorageClass created earlier. storageClassName: "alicloud-disk-wait-for-first-consumer" resources: requests: # Requested storage capacity, which is the size of the Cloud Disk. storage: 20GiImportanteAo configurar
securityContext.fsgroup, o kubelet altera recursivamente as permissões de arquivo (chmod/chown) ao montar um volume. Isso pode aumentar significativamente o tempo de montagem para volumes com muitos arquivos.Para clusters da versão 1,20 ou posterior, recomendamos definir
fsGroupChangePolicycomoOnRootMismatch. Isso otimiza o desempenho da montagem executando a alteração recursiva de permissões apenas quando o volume é montado pela primeira vez e as permissões do diretório raiz não correspondem. Se o desempenho continuar sendo um problema ou se você precisar de um controle de permissões mais granular, use uminitContainerpara gerenciar as permissões antes que o contêiner da aplicação seja iniciado. -
Crie o StatefulSet.
kubectl create -f statefulset.yaml -
Verifique se os Pods estão em execução.
kubectl get pod -l app=nginx -
Verifique se o disco em nuvem está montado.
Neste exemplo, o Pod chama-se
web-1. Substitua pelo nome real do seu Pod.kubectl exec web-1 -- df -h /dataSaída esperada:
Filesystem Size Used Avail Use% Mounted on /dev/vdb 20G 24K 20G 1% /data
Etapa 3: Verificar o armazenamento persistente
Para verificar se os dados no disco em nuvem são persistentes, grave dados no disco, exclua o Pod e verifique se os dados persistem após a recriação do Pod.
-
Grave dados de teste no Pod.
No Pod
web-1, crie um arquivo chamadotestno diretório/data, que é o ponto de montagem do disco em nuvem.kubectl exec web-1 -- touch /data/test kubectl exec web-1 -- ls /dataSaída esperada:
lost+found test -
Simule uma falha de Pod excluindo-o.
kubectl delete pod web-1Execute
kubectl get pod -l app=nginxnovamente. Um novo Pod com o mesmo nome,web-1, é criado automaticamente. -
Verifique os dados no novo Pod.
No novo Pod
web-1, verifique o diretório/datanovamente.kubectl exec web-1 -- ls /dataA saída confirma que o arquivo
testainda existe. Isso demonstra que o armazenamento persistente preserva os dados, mesmo após a exclusão e recriação do Pod.lost+found test
Implantação em produção
-
Alta disponibilidade
-
Seleção de disco em nuvem
Avalie fatores como desempenho, faturamento, zonas de disponibilidade e famílias de tipos de instância para garantir que seus Pods sejam agendados em nós compatíveis.
Ao selecionar um tipo de disco em nuvem, observe que os discos SSD e Ultra disks estão sendo descontinuados. Recomendamos o uso de discos ESSD PL0 ou ESSD Entry para substituir os Ultra disks, e discos ESSD AutoPL para substituir os discos SSD.
-
Recuperação de desastres entre zonas
Recuperação de desastres no nível da aplicação: Para cargas de trabalho críticas, como bancos de dados, implante instâncias da aplicação em várias zonas de disponibilidade e use o mecanismo nativo de sincronização de dados da aplicação para garantir alta disponibilidade.
Recuperação de desastres no nível de armazenamento: Escolha um tipo de disco em nuvem que suporte recuperação de desastres multizona. Esse recurso grava dados sincronizadamente em diferentes zonas de disponibilidade dentro da mesma região, permitindo failover entre zonas. Para mais informações, consulte Usar discos redundantes colocalizados ESSD.
-
-
Segurança de dados e backup
-
Prevenção contra exclusão acidental de dados:
Para evitar perda de dados, defina a
reclaimPolicyda StorageClass comoRetain. Isso garante que o disco em nuvem subjacente seja retido quando o PVC for excluído, simplificando a recuperação de dados. -
Backups regulares
Volumes dinâmicos simplificam o provisionamento de recursos, mas não substituem backups de dados. Para cargas de trabalho críticas, use o Backup Center para fazer backup e restaurar seus dados.
Criptografia em repouso: Para aplicações que lidam com dados sensíveis, configure
encrypted: "true"na StorageClass para criptografar discos em nuvem.
-
-
Otimização de desempenho e custos
-
Anexação paralela
Para acelerar a inicialização do Pod, use anexação paralela para discos em nuvem.
-
Redimensionamento online de volumes
Defina
allowVolumeExpansion: truena StorageClass para redimensionar volumes de armazenamento de disco em nuvem online quando suas necessidades de armazenamento aumentarem. -
Monitoramento e alertas de armazenamento
Configure alertas com base no monitoramento de armazenamento de contêineres para detectar prontamente anomalias em volumes de armazenamento ou gargalos de desempenho.
-
-
Exclua a carga de trabalho
-
Ação: Exclua todas as aplicações que usam o PersistentVolumeClaim (PVC) associado, como Deployments e StatefulSets. Isso interrompe os Pods em execução e desmonta os volumes associados.
Comando de exemplo:
kubectl delete deployment <your-deployment-name>
-
-
Exclua o PVC
-
Ação: Exclua o PVC associado à sua aplicação. A
reclaimPolicyda StorageClass determina a liberação do PersistentVolume (PV) vinculado e do disco em nuvem subjacente.-
Delete: Se a política forDelete, excluir o PVC também exclui o PV vinculado e o disco em nuvem subjacente. Esta ação é irreversível. Prossiga com cautela.Para evitar perda acidental de dados, você pode criar uma política de snapshot automático para fazer backup do disco em nuvem antes da exclusão.
Retain: Se a política forRetain, excluir o PVC altera o status do PV vinculado paraReleased, mas o objeto PV e o disco em nuvem subjacente são retidos. Se você não precisar mais do disco em nuvem e de seus dados, siga as instruções em Liberar um disco em nuvem para excluí-lo. Esta ação é irreversível. Prossiga com cautela.
Comando de exemplo:
kubectl delete pvc <your-pvc-name> -
-
-
Exclua as definições de recursos de armazenamento do Kubernetes. Esta ação remove apenas as definições de recursos do cluster e não exclui o disco em nuvem subjacente.
-
Exclua o PV
Ação: Você pode excluir manualmente a definição de recurso para um PV no estado
Released.Comando de exemplo:
kubectl delete pv <your-pv-name>
-
Exclua a StorageClass
Ação: Se você não precisar mais deste tipo de armazenamento, poderá excluir a StorageClass correspondente.
Comando de exemplo:
kubectl delete sc <your-storageclass-name>
Motivo:
O modo WaitForFirstConsumer depende do kube-scheduler para selecionar um nó físico para um Pod. Essa seleção determina a zona de disponibilidade, e um disco em nuvem é então criado nessa zona. No entanto, o mecanismo de agendamento para nós virtuais não segue esse processo. Isso impede que o CSI obtenha as informações da zona de disponibilidade, o que, por sua vez, impede a criação do PV, deixando o PVC no estado Pending.-
Se você encontrar esse problema, verifique se o seu Pod ou seu namespace possui alguma das seguintes configurações:
-
Rótulo:
alibabacloud.com/eci: "true": Agenda o Pod para execução no ECI.alibabacloud.com/acs: "true": Agenda o Pod para um Pod ACS.
-
Fixação de nó:
Definir
spec.nodeNamecomo um nome de nó com o prefixovirtual-kubeletfixa o Pod nesse nó.
-
Anotação:
k8s.aliyun.com/eci-vswitch: Especifica o vSwitch para o Pod ECI.k8s.aliyun.com/eci-fail-strategy: "fail-fast": Define a estratégia de falha para o Pod ECI comofail-fast.
-
-
Crie um PersistentVolumeClaim para solicitar recursos de armazenamento.
kubectl
-
Crie um arquivo chamado
disk-pvc.yaml.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: disk-pvc spec: # Access mode accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: # Requested storage capacity, which is the size of the cloud disk storage: 20Gi # Associate with the StorageClass created earlier storageClassName: alicloud-disk-topology-alltypeA tabela a seguir descreve os parâmetros.
Parâmetro
Descrição
accessModesOs modos de acesso do volume. Valores válidos são
ReadWriteOnce,ReadOnlyManyeReadWriteMany. Os modos de acesso suportados dependem da configuraçãomultiAttachna StorageClass e da configuraçãovolumeModeno PersistentVolumeClaim.multiAttachespecifica se o multi-attach de disco em nuvem deve ser ativado. O valor padrão éfalse, o que significa que o recurso está desativado.Quando
multiAttachéfalseevolumeModeestá definido como qualquer valor, o único modo de acesso suportado éReadWriteOnce.Quando
multiAttachétrueevolumeModeéFilesystem, os modos de acesso suportados sãoReadWriteOnceeReadOnlyMany.Quando
multiAttachestá definido comotrueevolumeModeestá definido comoBlock, todos os três modos de acesso são suportados.
ImportanteNeste cenário, o modo de acesso é tipicamente
ReadWriteOnce(RWO), o que significa que ele pode ser montado por apenas um Pod por vez. Portanto, o número de réplicas do Deployment não pode ser maior que 1. Se você tentar escalar horizontalmente, novos Pods permanecerão no estadoPendingporque não conseguirão montar o disco em nuvem que já está em uso.volumeModeO modo do volume. Valores válidos:
Filesystem(padrão): O volume é formatado e montado como um diretório.Block: O volume é fornecido ao Pod como um dispositivo de bloco bruto e não formatado.
storageA capacidade de armazenamento solicitada. Diferentes tipos de disco em nuvem possuem diferentes faixas de capacidade. Certifique-se de que o valor de
storageesteja dentro dos limites de capacidade do tipo de disco em nuvem correspondente à StorageClass referenciada para evitar falha na criação do disco.storageClassNameO nome da StorageClass a ser usada para esta solicitação.
-
Crie o PersistentVolumeClaim.
kubectl create -f disk-pvc.yaml -
Verifique o PersistentVolumeClaim.
kubectl get pvcNa saída, como a StorageClass usa o modo
WaitForFirstConsumer, o PVC permanece no estadoPendingaté que o primeiro Pod que o utiliza seja agendado com sucesso.NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Pending alicloud-disk-wait-for-first-consumer <unset> 14s
Console
No painel de navegação à esquerda da página de gerenciamento do cluster, escolha .
-
Na página Persistent Volume Claims, clique em Create. Selecione Cloud Disk como PVC Type e configure os parâmetros conforme solicitado.
Parâmetro
Descrição
Allocation Mode
Selecione Use StorageClass.
Existing Storage Class
Selecione uma StorageClass padrão ou criada manualmente.
Capacity
A capacidade de armazenamento solicitada. Diferentes tipos de disco em nuvem possuem diferentes faixas de capacidade. Certifique-se de que o valor de
storageesteja dentro dos limites de capacidade do tipo de disco em nuvem correspondente à StorageClass referenciada para evitar falha na criação do disco.Access Mode
Este cenário suporta apenas ReadWriteOnce, o que significa que um único Pod pode montar o volume com acesso de leitura e gravação.
Após criar o PersistentVolumeClaim, você pode visualizá-lo na página Persistent Volume Claims.
-
-
Monte o PersistentVolumeClaim na sua aplicação.
-
Crie um arquivo chamado
disk-deployment.yaml. -
Implante o Deployment.
kubectl create -f disk-deployment.yaml
-
-
Verifique o resultado da montagem.
-
Confirme se o Pod está em execução.
kubectl get pods -l app=nginx-single -
Conecte-se ao Pod e verifique se o disco em nuvem está montado no diretório
/data.# Get the pod name POD_NAME=$(kubectl get pods -l app=nginx-single -o jsonpath='{.items[0].metadata.name}') # Run the df -h command on the mount point kubectl exec $POD_NAME -- df -h /dataA saída a seguir indica que o disco em nuvem de 20 GiB foi montado com sucesso.
Filesystem Size Used Avail Use% Mounted on /dev/vdb 20G 24K 20G 1% /data
-
Para recomendações sobre como configurar alta disponibilidade para volumes de disco em nuvem em uma implantação multizona, consulte Recomendações de configuração de alta disponibilidade para volumes de disco em nuvem.
Para saber mais sobre parâmetros de configuração de carga de trabalho, consulte Criar uma carga de trabalho com estado com StatefulSet e Criar uma carga de trabalho sem estado com Deployment.
Se você não precisar mais de um disco em nuvem e quiser parar de ser cobrado por ele, poderá Liberar um disco em nuvem. Liberar o disco o exclui permanentemente junto com todos os seus dados.
Se você encontrar problemas ao usar volumes de disco em nuvem, consulte Perguntas frequentes sobre volumes de disco em nuvem.
Se o seu cluster ainda estiver usando o componente obsoleto FlexVolume, consulte Migrar do FlexVolume para CSI.
Perguntas frequentes
PVC preso no estado
Pendingao ser agendado para um nó virtualEsse problema pode ocorrer se você usar uma StorageClass que não suporta agendamento para nós virtuais. Quando um Pod é agendado para um nó virtual usando rótulos ou anotações específicas, não é possível usar uma StorageClass configurada com
volumeBindingMode: WaitForFirstConsumer.Montar um disco em nuvem para um único Pod ou Deployment de réplica única
Para aplicações simples que não exigem dimensionamento de múltiplas réplicas ou identificadores de rede estáveis, você pode criar manualmente um PersistentVolumeClaim e montá-lo em um Pod ou Deployment para armazenamento persistente.
O fluxo de trabalho é o seguinte: Escolher uma StorageClass -> Criar um PersistentVolumeClaim -> Montar o PersistentVolumeClaim na sua aplicação.
Referências
-
Faturamento
Discos em nuvem provisionados dinamicamente por uma StorageClass utilizam o modelo de pagamento conforme o uso. Para mais informações, consulte faturamento do block storage e preços do block storage.
Limpar recursos
Para evitar cobranças inesperadas e garantir a segurança dos dados, siga estas etapas para liberar recursos não utilizados.
