Configurando o Block Storage for VPC
O Block Storage for VPC fornece armazenamento de dados montado no hypervisor, de alto desempenho para suas instâncias de servidor virtual que pode ser provisionado em uma VPC.
É possível escolher entre camadas de armazenamento predefinidas com tamanhos de GB e IOPS que atendam aos requisitos de suas cargas de trabalho. Para saber se a Block Storage for VPC é a opção de armazenamento correto para você, consulte Escolher uma solução de armazenamento. Para obter informações de precificação, consulte Precificação para o Block Storage for VPC.
- O complemento do cluster Block Storage for VPC é ativado por padrão em clusters VPC.
- Se você desativar o Block Storage for VPC complemento, ele permanecerá desativado até que você o ative novamente. Ele não é ativado quando você atualiza ou renova o mestre do cluster.
Início rápido para IBM Cloud Block Storage for VPC
Neste guia de início rápido, você cria um volume 10Gi 5IOPS tier Block Storage for VPC em seu cluster, criando um PVC para provisionar dinamicamente o volume. Em seguida, você cria uma implementação de app que monta o seu PVC.
Agora disponível, você pode escolher uma classe de armazenamento de segunda geração.
Seus volumes Block Storage for VPC podem ser montados por vários pods, desde que esses pods sejam agendados no mesmo nó.
-
Crie um arquivo para o seu PVC e nomeia-o
pvc.yaml. Escolha entre uma classe de armazenamento de primeira geração e uma de segunda geração.Exemplo de primeira geração usando a classe de armazenamento
ibmc-vpc-block-5iops-tier:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: ibmc-vpc-block-5iops-tier accessModes: - ReadWriteOnce resources: requests: storage: 10GiExemplo de segunda geração usando a classe de armazenamento
ibmc-vpc-block-sdp:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: ibmc-vpc-block-sdp accessModes: - ReadWriteOnce resources: requests: storage: 10Gi -
Crie o PVC em seu cluster.
kubectl apply -f pvc.yaml -
Depois que seu PVC estiver ligado, crie uma implementação de app que use o seu PVC. Crie um arquivo para sua implementação e nomeia-o
deployment.yaml.apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: app: my-app spec: replicas: 1 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - image: ngnix # Your containerized app image. name: my-container volumeMounts: - name: my-volume mountPath: /mount-path volumes: - name: my-volume persistentVolumeClaim: claimName: my-pvc -
Crie a implementação em seu cluster.
kubectl apply -f deployment.yaml
Para obter mais informações, veja os links a seguir.
Incluindo o Block Storage for VPC em seus apps
Escolha o seu perfil do Block Storage for VPC e crie uma solicitação de volume persistente para provisionar dinamicamente o Block Storage for VPC para seu cluster. O provisionamento dinâmico cria automaticamente o volume persistente correspondente e solicita o dispositivo de armazenamento físico em sua conta do IBM Cloud.
-
Decida sobre o perfil do Block Storage for VPC que melhor atende aos requisitos de capacidade e desempenho desejados.
-
Selecione a classe de armazenamento correspondente para o seu perfil do Block Storage for VPC.
Todas as classes de armazenamento predefinidas da IBM configuram o Block Storage for VPC com um sistema de arquivos
ext4por padrão. Se desejar usar um sistema de arquivos diferente, comoxfsouext3, crie uma classe de armazenamento customizada.- 10 IOPS/GB:
ibmc-vpc-block-10iops-tierouibmc-vpc-block-retain-10iops-tier - 5 IOPS/GB:
ibmc-vpc-block-5iops-tierouibmc-vpc-block-retain-5iops-tier - 3 IOPS/GB:
ibmc-vpc-block-general-purposeouibmc-vpc-block-retain-general-purpose - Customizado:
ibmc-vpc-block-customouibmc-vpc-block-retain-custom
- 10 IOPS/GB:
-
Decida sobre a sua configuração do Block Storage for VPC.
- Escolha um tamanho para seu armazenamento. Certifique-se de que o tamanho seja suportado pelo perfil do Block Storage for VPC que você escolheu.
- Escolha se você deseja manter os seus dados após o cluster ou a solicitação de volume persistente (PVC) ser excluída.
- Para manter seus dados, escolha uma classe de armazenamento
retain. Quando você exclui o PVC, somente ele é excluído. O volume persistente (PV), o dispositivo de armazenamento físico em sua conta do IBM Cloud e seus dados ainda existem. Para recuperar o armazenamento e usá-lo em seu cluster novamente, deve-se remover o PV e seguir as etapas para usar o Block Storage for VPC existente. - Para que o PV, os dados e seu dispositivo físico do Block Storage for VPC sejam excluídos quando você excluir o PVC, escolha uma classe de armazenamento sem
retain.
- Para manter seus dados, escolha uma classe de armazenamento
-
Crie um arquivo de configuração para definir sua solicitação de volume persistente e salve a configuração como um arquivo YAML.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc_name> # Enter a name for your PVC. spec: accessModes: - <access-mode> # ReadWriteOnce or ReadWriteOncePod resources: requests: storage: 10Gi # Enter the size. Make sure that the size is supported in the profile that you chose. storageClassName: <storage_class> # Enter the storage class name that you selected earlier. -
Crie o PVC em seu cluster.
kubectl apply -f pvc.yaml -
Verifique se o PVC foi criado e ligado ao PV. Esse processo pode levar alguns minutos.
kubectl describe pvc <pvc_name>Saída de exemplo
Name: mypvv Namespace: default StorageClass: ibmc-vpc-block-5iops-tier Status: Bound Volume: Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"csi-block-pvc-good","namespace":"default"},"spec":{... volume.beta.kubernetes.io/storage-provisioner: vpc.block.csi.ibm.io Finalizers: [kubernetes.io/pvc-protection] Capacity: 10Gi Access Modes: VolumeMode: Filesystem Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ExternalProvisioning 9s (x3 over 18s) persistentvolume-controller waiting for a volume to be created, either by external provisioner "vpc.block.csi.ibm.io" or manually created by system administrator Mounted By: <none> -
Crie um arquivo de configuração de implementação para seu app e monte o PVC em seu app.
apiVersion: apps/v1 kind: Deployment metadata: name: <deployment_name> labels: app: <deployment_label> spec: selector: matchLabels: app: <app_name> template: metadata: labels: app: <app_name> spec: containers: - image: <image_name> name: <container_name> volumeMounts: - name: <volume_name> mountPath: /<file_path> volumes: - name: <volume_name> persistentVolumeClaim: claimName: <pvc_name>labels.app- Na seção de metadados, insira um rótulo para a implementação.
matchLabels.appelabels.app- Nas seções de seletor de especificação e metadados de modelo, digite um rótulo para o seu app.
image- Especifique o nome da imagem de contêiner que você deseja usar. Para listar as imagens disponíveis em sua conta do IBM Cloud Container Registry, execute
ibmcloud cr image-list. name- Especifique o nome do contêiner que você deseja implementar em seu pod.
mountPath- Na seção de montagens de volume de contêineres, especifique o caminho absoluto do diretório para onde o PVC é montado dentro do contêiner.
name- Na seção de montagens de volume de contêineres, insira o nome do volume para montar em seu pod. É possível inserir qualquer nome que você desejar.
name- Na seção volumes, insira o nome do volume para montar em seu pod. Geralmente, esse nome é igual a
volumeMounts.name. claimName- Na seção de solicitação de volume persistente de volumes, digite o nome do PVC que você criou anteriormente.
-
Crie a implementação em seu cluster.
kubectl apply -f deployment.yaml -
Verifique se o PVC foi montado com sucesso em seu app. Pode demorar alguns minutos para que seus pods atinjam um estado Em execução.
Durante a implementação de seu app, é possível ver erros
Unable to mount volumesintermitentes na seção Eventos de sua saída da CLI. O complemento de cluster Block Storage for VPC tenta automaticamente montar novamente o armazenamento em seus aplicativos. Aguarde mais alguns minutos para que o armazenamento seja montado em seu app.kubectl describe deployment <deployment_name>Saída de exemplo
... Volumes: myvol: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: mypvc ReadOnly: false
Usando uma instância do Block Storage for VPC existente
Se você tiver um dispositivo físico do Block Storage for VPC existente que deseja usar em seu cluster, será possível criar manualmente o PV e o PVC para provisionar estaticamente o armazenamento.
É possível anexar um volume a apenas um nó do trabalhador. Certifique-se de que o volume esteja na mesma zona que o nó do trabalhador para que o anexo tenha sucesso.
-
Determine o volume que você deseja anexar a um nó do trabalhador em seu cluster de VPC. Observe o ID do volume.
ibmcloud is volumes -
Liste os detalhes do seu volume. Observe o Tamanho, Zona e IOPS. Esses valores são usados para criar o seu PV.
ibmcloud is volume <volume_id> -
Recupere uma lista de nós do trabalhador em seu cluster de VPC. Anote a Zona do nó do trabalhador que está na mesma zona que o seu volume de armazenamento.
ibmcloud ks worker ls -c <cluster_name> -
Opcional: se você provisionou a sua instância física do Block Storage for VPC usando uma classe de armazenamento
retain, o PV e o armazenamento físico não serão removidos quando você remover o PVC. Para usar seu dispositivo físico do Block Storage for VPC em seu cluster, deve-se remover primeiro o PV existente.-
Listar os PVs em seu cluster e procurar o PV que pertence ao seu dispositivo do Block Storage for VPC. O PV está em um estado
released.kubectl get pv -
Remova o PV.
kubectl delete pv <pv_name>
-
-
Crie um arquivo de configuração para seu PV. Inclua o ID, o Tamanho, a Zona e o IOPS que você recuperou anteriormente.
apiVersion: v1 kind: PersistentVolume metadata: name: <pv_name> # Example: my-persistent-volume spec: accessModes: - ReadWriteOnce capacity: storage: <vpc_block_storage_size> # Example: 20Gi csi: driver: vpc.block.csi.ibm.io fsType: ext4 volumeAttributes: iops: "<vpc_block_storage_iops>" # Example: "3000" volumeId: <vpc_block_storage_ID> # Example: a1a11a1a-a111-1111-1a11-1111a11a1a11 zone: "<vpc_block_zone>" # Example: "eu-de-3" region: "<vpc_block_region>" volumeHandle: <vpc_block_storage_ID> nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: failure-domain.beta.kubernetes.io/zone operator: In values: - <worker_node_zone> # Example: eu-de-3 - key: failure-domain.beta.kubernetes.io/region operator: In values: - <worker_node_region> # Example: eu-de - key: kubernetes.io/hostname operator: In values: - <worker_node_primary_IP> persistentVolumeReclaimPolicy: Retain storageClassName: "" volumeMode: Filesystemname- Na seção de metadados, digite um nome para o seu PV.
storage- Na seção de capacidade de especificação, digite o tamanho do volume do Block Storage for VPC em gigabytes (Gi) que você recuperou anteriormente. Por exemplo, se o tamanho de seu dispositivo for 100 GB, insira
100Gi. iops- Na seção de atributos de volume CSI de especificação, digite o IOPS máximo do volume do Block Storage for VPC que você recuperou anteriormente.
zone- Na seção de atributos de volume CSI de especificação, digite a zona de bloco de VPC que corresponde ao local que você recuperou anteriormente. Por exemplo, se seu local for
Washington DC-1, useus-east-1como sua zona. Para listar zonas disponíveis, executeibmcloud is zones. Para encontrar uma visão geral de zonas e locais disponíveis do VPC, consulte Criando um VPC em uma região diferente. Mencione o parâmetro "region" quando o "zone" for especificado. region- A região do nó do trabalhador na qual deseja anexar o armazenamento.
worker_node_primary_IP- O IP primário do nó do trabalhador no qual deseja anexar o armazenamento. É possível localizar o IP primário do nó do trabalhador executando
ibmcloud ks worker ls. volumeIdespec.csi.volumeHandle- Na seção de atributos de volume CSI de especificação, digite o ID do volume do Block Storage for VPC que você recuperou anteriormente.
storageClassName- Para o nome da classe de armazenamento de especificação, digite uma sequência vazia.
matchExpressions- Na seção de afinidade do nó de especificação, digite os termos do seletor do nó para corresponder à zona. Para a chave, insira
failure-domain.beta.kubernetes.io/zone. Para o valor, insira a zona de seu nó do trabalhador no qual você deseja anexar o armazenamento. matchExpressions- Na seção de afinidade do nó spec, digite os termos seletores do nó para combinar com a região. Para a chave, insira
failure-domain.beta.kubernetes.io/region. Para o valor, insira a região do nó do trabalhador no qual você deseja anexar o armazenamento.
-
Crie o PV em seu cluster.
kubectl apply -f pv.yaml -
Verifique se o PV foi criado em seu cluster.
kubectl get pv -
Crie outro arquivo de configuração para seu PVC. Para que o PVC corresponda ao PV criado anteriormente, deve-se escolher o mesmo valor para o tamanho do armazenamento e o modo de acesso. No campo de sua classe de armazenamento, insira um valor de sequência vazia para corresponder ao seu PV. Se algum desses campos não corresponder ao PV, um novo PV e uma instância do Block Storage for VPC serão criados automaticamente por meio do provisionamento dinâmico.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc_name> spec: accessModes: - ReadWriteOnce resources: requests: storage: <vpc_block_storage_size> storageClassName: "" -
Crie a PVC.
kubectl apply -f pvc.yaml -
Verifique se o PVC foi criado e está ligado ao PV criado anteriormente. Esse processo pode levar alguns minutos.
kubectl describe pvc <pvc_name>
- Crie uma implementação ou um pod que use o seu PVC.
apiVersion: apps/v1
kind: Deployment
metadata:
name: <deployment_name>
labels:
app: <deployment_label>
spec:
selector:
matchLabels:
app: <app_name>
template:
metadata:
labels:
app: <app_name>
spec:
containers:
- image: <image_name>
name: <container_name>
volumeMounts:
- name: <volume_name>
mountPath: /<file_path>
volumes:
- name: <volume_name>
persistentVolumeClaim:
claimName: <pvc_name>
nodeSelector:
kubernetes.io/hostname: "<worker_node_primary_IP>"
Atualizando o complemento do cluster do Block Storage for VPC
Você pode atualizar o complemento Block Storage for VPC do cluster usando o addon update comando.
Antes de atualizar o complemento, revise o log de mudanças.
Antes de atualizar para uma versão " 5.x de uma versão anterior, você não deve ter nenhum snapshot de volume no estado " failure. Para obter mais informações, consulte Por que não consigo excluir meus recursos de Block Storage for VPC instantâneo de volume?
-
Confira para ver se uma atualização está disponível. Se uma atualização estiver disponível, a versão do plug-in será sinalizada com um asterisco e a versão mais recente será mostrada. Anote a versão mais recente, pois esse valor é usado posteriormente.
ibmcloud ks cluster addons --cluster <cluster_name_or_ID>Saída de exemplo
Name Version Health State Health Status vpc-block-csi-driver 1.0.0* (2.0.0 latest) normal Addon Ready -
Atualize o complemento. Observe que os comandos de atualização são diferentes, dependendo da versão instalada.
5.0 e mais recente Execute o comando
addon updateibmcloud ks cluster addon update vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y]Todas as versões anteriores à versão 5.0 Desative e ative o complemento
ibmcloud ks cluster addon disable vpc-block-csi-driver --cluster CLUSTER [-f] [-q]ibmcloud ks cluster addon enable vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y] -
Verifique se o complemento está no estado
Addon Ready. O complemento pode levar alguns minutos para ficar pronto.ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>Saída de exemplo
Name Version Health State Health Status vpc-block-csi-driver 2.0.0 normal Addon ReadySe usar uma classe de armazenamento padrão diferente da classe de armazenamento
ibmc-vpc-block-10iops-tier, você deverá mudar as configurações de classe de armazenamento padrão no configmapaddon-vpc-block-csi-driver-configmap. Para obter mais informações, consulte Mudando a classe de armazenamento padrão. -
Se você criou suas próprias classes de armazenamento com base nas classes de armazenamento padrão do site Block Storage for VPC, deverá recriar essas classes de armazenamento para atualizar os parâmetros. Para obter mais informações, consulte Recriação de suas próprias classes de armazenamento após a atualização para a versão 4.2.
Recriando suas próprias classes de armazenamento após atualizar para a versão 4.2
Com a versão 4.2, os parâmetros padrão para as classes de armazenamento foram alterados. Os parâmetros sizeRange ou iopsRange não são mais utilizados. Se você criou alguma de suas próprias classes de armazenamento
que usa esses parâmetros, deverá editá-las para removê-los. Para alterar os parâmetros em suas próprias classes de armazenamento, é necessário excluí-las e recriá-las. Antes, cada classe de armazenamento eram fornecidas para sizeRange e iopsRange como informações de referência. Com a versão 4.2, essas referências foram removidas. Agora, para obter informações sobre perfis de armazenamento de blocos, tamanhos e IOPs, consulte a referência perfis de armazenamento bloco .
-
Para encontrar os detalhes de suas próprias classes de armazenamento, execute o seguinte comando.
kubectl describe sc STORAGECLASS -
Se a classe de armazenamento utilizar
sizeRangeouiopsRange, obtenha a classe de armazenamento YAML e salve-a em um arquivo.kubectl get sc STORAGECLASS -o yaml -
No arquivo que você salvou da saída do comando anterior, remova os parâmetros
sizeRangeouiopsRange. -
Exclua a classe de armazenamento do cluster.
kubectl delete sc STORAGECLASS -
Recrie a classe de armazenamento no cluster usando o arquivo criado anteriormente.
kubectl apply -f custom-storage-class.yaml
Configurando a criptografia para o Block Storage for VPC
Use um provedor de serviço de gerenciamento de chaves (KMS), como IBM® Key Protect, para criar uma chave raiz privada que você usa na instância do Block Storage for VPC para criptografar os dados conforme eles são gravados no armazenamento. Depois de criar a chave raiz privada, crie sua própria classe de armazenamento ou um segredo Kubernetes com sua chave raiz e, em seguida, use essa classe de armazenamento ou segredo para provisionar sua instância Block Storage for VPC.
A ativação da criptografia Block Storage for VPC afeta o desempenho em aproximadamente 20%. No entanto, o impacto exato depende de seu nó do trabalhador e da configuração do volume de armazenamento Considere permitir impactos de desempenho ao ativar a criptografia.
-
Crie uma instância do provedor KMS que você deseja usar.
-
Crie uma chave raiz em sua instância do KMS.
- Chave raiz do Key Protect.
- Chave raiz do Hyper Protect Crypto Services. Por padrão, a chave raiz é criada sem uma data de expiração.
-
Configure a autorização de serviço para serviço. Autorize o Block Storage for VPC a acessar o IBM® Key Protect. Certifique-se de dar Block Storage for VPC pelo menos
Readeracesso à sua instância KMS. -
Decida se você deseja armazenar o CRN da chave raiz Key Protect em uma classe de armazenamento customizada ou em um segredo do Kubernetes. Em seguida, siga as etapas para criar uma classe de armazenamento customizada ou um segredo do Kubernetes.
Exemplo de classe de armazenamento customizada.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: <storage_class_name> # Enter a name for your storage class. provisioner: vpc.block.csi.ibm.io parameters: profile: "5iops-tier" csi.storage.k8s.io/fstype: "ext4" billingType: "hourly" encrypted: "true" encryptionKey: "<encryption_key>" resourceGroup: "" zone: "" tags: "" generation: "gc" classVersion: "1" reclaimPolicy: "Delete"encrypted- Nos parâmetros, digite
truepara criar uma classe de armazenamento que configure a criptografia para seus volumes Block Storage for VPC. Se você definir essa opção comotrue, deverá fornecer o CRN da chave raiz da instância do serviço Key Protect que deseja usar emparameters.encryptionKey. encryptionKey- Nos parâmetros, digite o CRN de chave raiz que você recuperou anteriormente.
Exemplo de segredo do Kubernetes.
apiVersion: v1 kind: Secret type: vpc.block.csi.ibm.io metadata: name: <secret_name> namespace: <namespace_name> stringData: encrypted: <true_or_false> data encryptionKey: <encryption_key>name- Insira um nome para seu segredo.
namespace- Insira o namespace no qual você deseja criar seu segredo.
encrypted- Nos parâmetros, digite
truepara configurar a criptografia para seus volumes Block Storage for VPC. encryptionKey- Nos parâmetros, digite o CRN da chave raiz de sua instância de serviço do Key Protect que você deseja usar para criptografar seu volume do Block Storage for VPC. Para usar o CRN da chave raiz em um segredo, primeiro deve-se convertê-lo
em base64 executando
echo -n "<root_key_CRN>" | base64.
-
Siga as etapas de 4 a 9 em Incluindo o Block Storage for VPC em seus apps para criar uma PVC com sua classe de armazenamento customizada para provisionar o Block Storage for VPC que está configurada para criptografia com sua chave raiz do Key Protect. Em seguida, monte esse armazenamento para um pod de app.
O app pode levar alguns minutos para montar o armazenamento e entrar em um estado de Execução.
-
Verifique se seus dados estão criptografados. Liste seus volumes do Block Storage for VPC e anote o ID da instância que você criou. O Nome da instância de armazenamento é igual ao nome do PV criado automaticamente quando você criou o PVC.
ibmcloud is volsSaída de exemplo
ID Name Status Capacity IOPS Profile Attachment type Created Zone Resource group a395b603-74bf-4703-8fcb-b68e0b4d6960 pvc-479d590f-ca72-4df2-a30a-0941fceeca42 available 10 3000 5iops-tier data 2019-08-17T12:29:18-05:00 us-south-1 a8a12accd63b437bbd6d58fb6a462ca7 -
Usando o ID do volume, liste os detalhes para sua instância do Block Storage for VPC a fim de garantir que sua chave raiz do Key Protect esteja armazenada na instância de armazenamento. É possível encontrar a chave raiz no campo Chave de criptografia da saída da CLI.
ibmcloud is vol <volume_ID>Saída de exemplo
ID a395b603-74bf-4703-8fcb-b68e0b4d6960 Name pvc-479d590f-ca72-4df2-a30a-0941fceeca42 Status available Capacity 10 IOPS 3000 Profile 5iops-tier Encryption key crn:v1:bluemix:public:kms:us-south:a/6ef045fd2b43266cfe8e6388dd2ec098:53369322-958b-421c-911a-c9ae8d5156d1:key:47a985d1-5f5e-4477-93fc-12ce9bae343f Encryption user_managed Resource group a8a12accd63b437bbd6d58fb6a462ca7 Created 2019-08-17T12:29:18-05:00 Zone us-south-1 Volume Attachment Instance Reference
Customizando as configurações de armazenamento padrão
É possível mudar algumas configurações de PVC padrão usando uma classe de armazenamento customizada ou um segredo de Kubernetes para criar o Block Storage for VPC com suas configurações customizadas.
- Qual é a vantagem de usar um segredo e especificar meus parâmetros em uma classe de armazenamento personalizada?
- Como um administrador de cluster, crie uma classe de armazenamento customizada quando quiser que todas as PVCs que os usuários do cluster criam sejam fornecidas com uma configuração específica e não quiser permitir que os usuários do cluster substituam a configuração padrão.
- No entanto, quando múltiplas configurações forem necessárias e você não desejar criar uma classe de armazenamento customizada para cada possível configuração de PVC, será possível criar uma classe de armazenamento customizada com as configurações de PVC padrão e uma referência a um segredo do Kubernetes genérico. Se os usuários do cluster devem substituir as configurações padrão de sua classe de armazenamento customizada, eles poderão fazer isso criando um segredo do Kubernetes que retém suas configurações customizadas.
Para configurar a criptografia para sua instância do Block Storage for VPC, também será possível usar um segredo do Kubernetes se você desejar codificar o CRN de chave raiz do Key Protect para base64, em vez de fornecer a chave diretamente na classe de armazenamento customizada.
Mudando a classe de armazenamento padrão
Com a 4.2 versão, o complemento Block Storage for VPC de cluster define a classe de armazenamento padrão como a ibmc-vpc-block-10iops-tier classe. Se houver uma classe de armazenamento padrão diferente de ibmc-vpc-block-10iops-tier e as PVCs usarem a classe de armazenamento padrão, isso poderá resultar em várias classes de armazenamento padrão, o que pode causar falhas de criação de PVC. Para usar uma classe de armazenamento padrão diferente de ibmc-vpc-block-10iops-tier,
é possível atualizar o addon-vpc-block-csi-driver-configmap para mudar o IsStorageClassDefault para falso.
A classe de armazenamento padrão para o complemento do cluster Block Storage for VPC é a classe de armazenamento ibmc-vpc-block-10iops-tier.
-
Editar o
addon-vpc-block-csi-driver-configmapkubectl edit cm addon-vpc-block-csi-driver-configmap -n kube-system -
Mude a configuração
IsStorageClassDefaultparafalse. -
Salve e encerre.
-
Aguarde 15 minutos e verifique a mudança obtendo os detalhes da classe de armazenamento
ibmc-vpc-block-10iops-tier.kubectl get sc ibmc-vpc-block-10iops-tier -o yaml
Criando sua própria classe de armazenamento
Crie sua própria classe de armazenamento customizada com as configurações preferenciais para sua instância do Block Storage for VPC. Ao usar o perfil SDP, você pode especificar a capacidade e o limite máximo de throughput.
Os perfis de desempenho definidos por SSD (SDP) estão disponíveis em Dallas, Frankfurt, Londres, Madri, Osaka, São Paulo, Sydney, Tóquio, Toronto e Washington D.C. A criação de instantâneos para perfis de desempenho definidos para SSD está disponível em Dallas, Frankfurt, Tóquio e Washington. D.C
Se desejar, você pode criar sua própria classe de armazenamento:
- Configurar um valor de IOPs customizado.
- Configurar o Block Storage for VPC com um tipo de sistema de arquivos diferente de
ext4. - Configurar a criptografia.
- Configure o desempenho definido pelo SSD.
Antes de Iniciar
-
Revise a Referência de classe de armazenamento para determinar o
profileque você deseja usar para a sua classe de armazenamento. -
Também é possível revisar os perfis customizados caso você queira especificar um IOPs customizado para o seu Block Storage for VPC.
-
Se você quiser usar um perfil de desempenho definido por SSD (SDP), examine o intervalo de capacidade e os detalhes de IOPs. Observe que, ao usar um desempenho definido por SSD, a capacidade do volume é determinada pelos IOPs e pela taxa de transferência que você especificar.
-
Você pode usar uma classe de armazenamento existente como ponto de partida para criar sua própria classe. Salve os detalhes de uma classe de armazenamento existente usando o comando
kubectl get sc <storageclass> -o yaml. -
Para manter os custos baixos, você pode provisionar inicialmente um PVC com baixa capacidade, IOPS mínimo e taxa de transferência mínima usando a classe de armazenamento
ibmc-vpc-block-sdp, que tem um mínimo de 3.000 IOPS e 1.000 taxas de transferência (Mbps). Após o provisionamento, você pode acessar o PVC e ajustar o IOPS e a taxa de transferência conforme as necessidades forem melhor definidas.
Para criar uma classe de armazenamento personalizada:
-
Crie um arquivo de configuração de classe de armazenamento personalizado no seguinte formato. Escolha entre uma classe de armazenamento de primeira geração e uma de segunda geração.
Exemplo da primeira geração:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: <storage_class_name> provisioner: vpc.block.csi.ibm.io parameters: profile: "<profile>" # general-purpose, sdp, 5iops-tier, 10iops-tier, or custom csi.storage.k8s.io/fstype: "<file_system_type>" # xfs, ext3, or ext4 billingType: "hourly" encrypted: "<encrypted_true_false>" encryptionKey: "<encryption_key>" resourceGroup: "" zone: "<zone>" region: "<region>" tags: "<tags>" generation: "gc" throughput: "<throughput>" # Example: 2000 classVersion: "1" iops: "<iops>" # Only specify this parameter if you are using a "custom" profile. allowVolumeExpansion: (true|false) # Select true or false. Only supported on version 3.0.1 and later volumeBindingMode: <volume_binding_mode> # csi.storage.k8s.io/provisioner-secret-name: # Uncomment and add secret parameters to enforce encryption. # csi.storage.k8s.io/provisioner-secret-namespace: reclaimPolicy: "<reclaim_policy>"name- Insira um nome para a sua classe de armazenamento.
profile- Digite o perfil que você selecionou na etapa anterior. Escolha
general-purpose,sdp,5iops-tier,10iops-tier, ou custom use um valor de IOPs personalizado. Para encontrar os tamanhos de armazenamento compatíveis com um perfil específico, consulte Perfil de IOPS em camadas. Qualquer PVC que usa essa classe de armazenamento deve especificar um valor de tamanho que esteja dentro desse intervalo. csi.storage.k8s.io/fstype- Nos parâmetros, digite o sistema de arquivos para sua instância do Block Storage for VPC. Escolha
xfs,ext3ouext4. Se quiser modificar a propriedade ou as permissões do volume, você deverá especificar o endereçocsi.storage.k8s.io/fstypeem sua própria classe de armazenamento e seu PVC deverá terReadWriteOncecomoaccessMode. O driver Block Storage for VPC usa oReadWriteOnceWithFSTypefsGroupPolicy. Para obter mais informações, consulte a documentação do driver CSI. encrypted- Nos parâmetros, digite
truepara criar uma classe de armazenamento que configure a criptografia para seu volume Block Storage for VPC. Se você definir essa opção comotrue, deverá fornecer o CRN da chave raiz da instância do serviço Key Protect que deseja usar emparameterencryptionKey. Para obter mais informações sobre como criptografar seus dados, consulte Configurando a criptografia para o seu Block Storage for VPC. encryptionKey- Se você digitou
trueparaparameters.encrypted, digite o CRN da chave raiz da instância de serviço Key Protect que deseja usar para criptografar o volume Block Storage for VPC. Para obter mais informações sobre como criptografar seus dados, consulte Configurando a criptografia para o seu Block Storage for VPC. zone- Nos parâmetros, digite a zona da VPC na qual deseja criar a instância do Block Storage for VPC. Certifique-se de usar uma zona à qual seus nós do trabalhador estão conectados. Para listar as zonas VPC que os nós de trabalho usam, execute
ibmcloud ks cluster get --cluster <cluster_name_or_ID>e observe o campo Worker Zones na saída da CLI. Se você não especificar uma zona, uma das zonas do nó do trabalhador será selecionada automaticamente para a instância do Block Storage for VPC. region- A região do nó do trabalhador na qual deseja anexar o armazenamento.
tags- Nos parâmetros, insira uma lista de tags separada por espaços para aplicar à sua instância Block Storage for VPC. As tags podem ajudá-lo a encontrar instâncias mais facilmente ou agrupar suas instâncias com base em características comuns, como o app ou o ambiente para o qual são usadas.
iops- Se você digitou
customousdppara oprofile, digite um valor para os IOPs que deseja que o Block Storage for VPC use. Consulte a tabela Perfil de IOPs customizado do Block Storage for VPC para obter uma lista de intervalos de IOPs suportados por tamanho de volume. throughput- Digite esse valor se estiver usando um perfil
sdp. Para obter mais informações, consulte os detalhes de IOPs e taxa de transferência do perfil SDP reclaimPolicy- Insira a política de recuperação para sua classe de armazenamento. Se você desejar manter o PV, o dispositivo de armazenamento físico e seus dados ao remover o PVC, insira
Retain. Se você desejar excluir o PV, o dispositivo de armazenamento físico e seus dados ao remover o PVC, insiraDelete. allowVolumeExpansion- Insira a política de expansão de volume para sua classe de armazenamento. Se você deseja permitir a expansão de volume, insira
true. Se você não deseja permitir a expansão de volume, insirafalse. volumeBindingMode- Escolha se desejar atrasar a criação da instância do Block Storage for VPC até que o primeiro pod que usa esse armazenamento esteja pronto para ser planejado. Para atrasar a criação, insira
WaitForFirstConsumer. Para criar a instância ao criar o PVC, insiraImmediate.
Exemplo de segunda geração:
Se você provisionar um PVC 9.6TB usando a classe de armazenamento
ibmc-vpc-block-5iops-tierde primeira geração, o IOPS máximo será de 48.000 e a taxa de transferência máxima será de 6144 Mbps. Entretanto, com a classe de armazenamentoibmc-vpc-block-sdp-max-bandwidthde segunda geração, o IOPS máximo é de 64.000 e a taxa de transferência máxima é de 8192 Mbps.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibmc-vpc-block-sdp-max-bandwidth provisioner: vpc.block.csi.ibm.io parameters: profile: "sdp" # general-purpose, sdp, 5iops-tier, 10iops-tier, or custom csi.storage.k8s.io/fstype: "ext4" # xfs, ext3, or ext4 billingType: "hourly" encrypted: "false" encryptionKey: "" resourceGroup: "" zone: "us-east" region: "tor01" tags: "tag" generation: "gc" throughput: "8192" # Example: 2000 classVersion: "1" iops: "64000" # Only specify this parameter if you are using a "custom" profile. allowVolumeExpansion: true # Select true or false. Only supported on version 3.0.1 and later volumeBindingMode: Immediate reclaimPolicy: "Delete" -
Crie a classe de armazenamento customizada no cluster.
kubectl apply -f custom-storageclass.yaml -
Verifique se a classe de armazenamento está disponível no cluster.
kubectl get scSaída de exemplo
NAME PROVISIONER AGE <custom-storageclass> vpc.block.csi.ibm.io 4m26s -
Siga as etapas em Incluindo o Block Storage for VPC em seus apps para criar um PVC com sua classe de armazenamento customizada para fornecer o Block Storage for VPC. Em seguida, monte esse armazenamento para um app de amostra.
-
Opcional: Verifique seu tipo de sistema de arquivos do Block Storage for VPC.
Verificando seu sistema de arquivos do Block Storage for VPC
É possível criar uma classe de armazenamento customizada para fornecer o Block Storage for VPC com um sistema de arquivos diferente, como xfs ou ext3. Por padrão, todas as instâncias do Block Storage for VPC são provisionadas
com um sistema de arquivos ext4.
-
Siga as etapas para criar uma classe de armazenamento customizada com o sistema de arquivos que você deseja usar.
-
Siga as etapas de 4 a 9 em Incluindo o Block Storage for VPC em seus apps para criar uma PVC com a sua classe de armazenamento customizada para provisionar o Block Storage for VPC com um sistema de arquivos diferente. Em seguida, monte esse armazenamento para um pod de app.
O app pode levar alguns minutos para montar o armazenamento e entrar em um estado de Execução.
-
Verifique se seu armazenamento está montado com o sistema de arquivos correto. Liste os pods em seu cluster e anote o Nome do pod usado para montar seu armazenamento.
kubectl get pods -
Efetue login em seu pod.
kubectl exec <pod_name> -it bash -
Liste os caminhos de montagem dentro de seu pod.
mount | grep /dev/xvdgSaída de exemplo para
xfs./dev/xvdg on /test type xfs (rw,relatime,attr2,inode64,noquota) -
Saia do pod.
exit
Atualizando o VolumeAttachLimit
Nas versões 5.2 e mais recentes do complemento do cluster Block Storage for VPC, é possível editar o número máximo de volumes que podem ser conectados a cada nó editando o configmap. O valor padrão é 12.
A sua conta deve ser aprovada para usar este recurso.
-
Edite o configmap. Substitua
VALUEpelo limite de anexo de volume que você deseja configurarkubectl patch configmap/addon-vpc-block-csi-driver-configmap \ -n kube-system \ --type merge \ -p '{"data":{"VolumeAttachmentLimit":"VALUE"}}' -
Aguarde a reinicialização dos pods
ibm-vpc-block-csi-nodeno namespacekube-system. Verifique se os pods foram reiniciados..kubectl get pods -n kube-system -w| grep block-csi -
Agora é possível conectar volumes aos nós do trabalhador usando o fornecimento dinâmico ou criando manualmente os anexos. Para obter mais informações, consulte Incluindo Block Storage for VPC em seus apps ou Usando uma instância existente do Block Storage for VPC..
Armazenando suas configurações de PVC customizadas em um segredo do Kubernetes
Especifique as configurações do PVC em um segredo do Kubernetes e referencie esse segredo em uma classe de armazenamento customizada. Em seguida, use a classe de armazenamento customizada para criar um PVC com os parâmetros customizados que você configurou em seu segredo.
- Quais opções eu tenho para usar o segredo Kubernetes?
- Como um administrador de cluster, é possível escolher se você deseja permitir que cada usuário do cluster substitua as configurações padrão de uma classe de armazenamento ou se desejar criar um segredo que todos em seu cluster devem usar e que impõe a codificação base64 para o CRN da chave raiz do Key Protect.
- Cada usuário pode customizar as configurações padrão
- Neste cenário, o administrador do cluster cria uma classe de armazenamento customizada com as configurações de PVC padrão e uma referência a um segredo genérico do Kubernetes. Os usuários de cluster podem substituir as configurações padrão da classe de armazenamento, criando um segredo do Kubernetes com as configurações do PVC que eles desejarem. Para que as configurações customizadas no segredo sejam aplicadas na instância do Block Storage for VPC, deve-se criar uma PVC com o mesmo nome do segredo do Kubernetes.
- Impingir a codificação base64 para a chave-raiz do Key Protect
- Neste cenário, você cria uma classe de armazenamento customizada com as configurações de PVC padrão e uma referência a um segredo estático do Kubernetes que substitui ou aprimora as configurações padrão da classe de armazenamento customizada. Os usuários do cluster não podem substituir as configurações padrão criando seus próprios segredos do Kubernetes. Em vez disso, os usuários do cluster devem provisionar o Block Storage for VPC com a configuração que você escolheu em sua classe de armazenamento customizada e no segredo. O benefício de usar esse método em vez da criação de uma classe de armazenamento customizada somente é que é possível cumprir a codificação base64 para o CRN de chave raiz de sua instância de serviço do Key Protect quando você deseja criptografar os dados em sua instância do Block Storage for VPC.
- O que eu preciso saber antes de começar a usar o segredo Kubernetes para minhas configurações de PVC?
- Algumas configurações de PVC, como
reclaimPolicy,fstypeouvolumeBindingMode, não podem ser definidas na chave Kubernetes e devem ser definidas na classe de armazenamento. Como o administrador do cluster, se você desejar ativar seus usuários de cluster para substituir suas configurações padrão, deverá assegurar que configurou classes de armazenamento customizadas suficientes que referenciam um segredo genérico do Kubernetes para que seus usuários possam provisionar o Block Storage for VPC com configuraçõesreclaimPolicy,fstypeevolumeBindingModediferentes.
Ativando cada usuário para customizar as configurações de PVC padrão
-
Como o administrador de cluster, siga as etapas para criar uma classe de armazenamento customizada. No arquivo YAML da classe de armazenamento customizada, referencie o segredo do Kubernetes na seção
metadata.parametersconforme a seguir. Certifique-se de incluir o código no estado em que se encontra e de não mudar os nomes de variáveis.csi.storage.k8s.io/provisioner-secret-name: ${pvc.name} csi.storage.k8s.io/provisioner-secret-namespace: ${pvc.namespace} -
Como o usuário do cluster, crie um segredo do Kubernetes que customiza as configurações padrão da classe de armazenamento.
apiVersion: v1 kind: Secret type: vpc.block.csi.ibm.io metadata: name: <secret_name> namespace: <namespace_name> stringData: iops: "<IOPS_value>" zone: "<zone>" tags: "<tags>" encrypted: <true_or_false> resourceGroup: "<resource_group>" data encryptionKey: <encryption_key>name- Insira um nome para seu segredo do Kubernetes.
namespace- Insira o namespace no qual você deseja criar seu segredo. Para referenciar o segredo em seu PVC, o PVC deve ser criado no mesmo namespace.
iops- Na seção de dados sequência, digite o intervalo de IOPS que você deseja permitir para sua instância do Block Storage for VPC. O intervalo que você inserir deverá corresponder à camada do Block Storage for VPC que planeja usar.
zone- Na seção de dados de sequência, digite a zona de VPC na qual deseja criar a instância do Block Storage for VPC. Certifique-se de usar uma zona à qual seus nós do trabalhador estão conectados. Para listar as zonas VPC que os nós de trabalho
usam, execute
ibmcloud ks cluster get --cluster <cluster_name_or_ID>e observe o campo Worker Zones na saída da CLI. Se você não especificar uma zona, uma das zonas do nó do trabalhador será selecionada automaticamente para a instância do Block Storage for VPC. tags- Na seção de dados de sequência, digite uma lista separada por vírgulas de tags para usar quando o PVC for criado. As tags podem ajudá-lo a encontrar sua instância de armazenamento depois que ela for criada.
resourceGroup- Na seção de dados da cadeia de caracteres, digite o ID do grupo de recursos ao qual deseja que a instância do Block Storage for VPC tenha acesso. Se você não inserir um grupo de recursos, a instância será automaticamente autorizada a acessar recursos do grupo de recursos ao qual o cluster pertence.
encrypted- Na seção de dados da cadeia, digite
truepara criar um segredo que configure a criptografia para os volumes Block Storage for VPC. Se você definir essa opção comotrue, deverá fornecer o CRN da chave raiz da instância do serviço Key Protect que deseja usar emparameters.encryptionKey. Para obter mais informações sobre como criptografar seus dados, consulte Configurando a criptografia para o seu Block Storage for VPC. encryptionKey- Na seção de dados, se você digitou
trueparaparameters.encrypted, digite o CRN da chave raiz da instância de serviço Key Protect que deseja usar para criptografar os volumes Block Storage for VPC. Para usar o CRN da chave raiz em um segredo, primeiro deve-se convertê-lo em base64 executandoecho -n "<root_key_CRN>" | base64. Para obter mais informações sobre como criptografar seus dados, consulte Configurando a criptografia para o seu Block Storage for VPC.
-
Crie seu segredo do Kubernetes.
kubectl apply -f secret.yaml -
Siga as etapas em Incluindo Block Storage for VPC em seus apps para criar um PVC com suas configurações customizadas. Certifique-se de criar o PVC com a classe de armazenamento customizada que o administrador de cluster criou e use o mesmo nome para seu PVC que você usou para seu segredo. Usando o mesmo nome para o segredo e o PVC aciona o provedor de armazenamento para aplicar as configurações do segredo em seu PVC.
Impondo a codificação base64 para a Key Protect CRN da chave raiz
-
Como o administrador de cluster, crie um segredo do Kubernetes que inclua o valor codificado em base64 para seu CRN da chave raiz do Key Protect. Para recuperar o CRN de chave raiz, consulte Configurando a criptografia para o seu Block Storage for VPC.
apiVersion: v1 kind: Secret type: vpc.block.csi.ibm.io metadata: name: <secret_name> namespace: <namespace_name> stringData: encrypted: <true_or_false> resourceGroup: "<resource_group>" data: encryptionKey: <encryption_key>name- Insira um nome para seu segredo do Kubernetes.
namespace- Insira o namespace no qual você deseja criar seu segredo. Para referenciar o segredo em seu PVC, o PVC deve ser criado no mesmo namespace.
encrypted- Na seção de dados da cadeia, digite
truepara criar um segredo que configure a criptografia para os volumes Block Storage for VPC. Se você definir essa opção comotrue, deverá fornecer o CRN da chave raiz da instância do serviço Key Protect que deseja usar emparameters.encryptionKey. Para obter mais informações sobre como criptografar seus dados, consulte Configurando a criptografia para o seu Block Storage for VPC. encryptionKey- Na seção de dados, se você digitou
trueparaparameters.encrypted, digite o CRN da chave raiz da instância de serviço Key Protect que deseja usar para criptografar o volume Block Storage for VPC. Para usar o CRN da chave raiz em um segredo, primeiro deve-se convertê-lo em base 64 executandoecho -n "<root_key_CRN>" | base64. Para obter mais informações sobre como criptografar seus dados, consulte Configurando a criptografia para o seu Block Storage for VPC.
-
Crie o segredo do Kubernetes.
kubectl apply -f secret.yaml -
Siga as etapas para criar uma classe de armazenamento customizada. No arquivo YAML da classe de armazenamento customizada, referencie o segredo do Kubernetes na seção
metadata.parametersconforme a seguir. Certifique-se de inserir o nome do segredo do Kubernetes que você criou anteriormente e o namespace no qual você criou o segredo.csi.storage.k8s.io/provisioner-secret-name: <secret_name> csi.storage.k8s.io/provisioner-secret-namespace: <secret_namespace> -
Como o usuário do cluster, siga as etapas em Incluindo o Block Storage for VPC em seus apps para criar um PVC por meio de sua classe de armazenamento customizada.
Configurando a expansão de volume
Para fornecer volumes que suportem expansão, deve-se utilizar uma classe de armazenamento que tenha allowVolumeExpansion configurado como true.
É possível expandir somente volumes que são montados por um pod do app.
-
Se você não estiver usando a versão
4.2ou posterior do complemento, atualize o complemento de cluster Block Storage for VPC em seu cluster. -
Crie uma PVC que use uma classe de armazenamento que suporta expansão de volume.
-
Implemente um app que use sua PVC. Ao criar o seu app, anote o
mountPathque você especificar. -
Depois que sua PVC for montada por um pod do app, será possível expandir seu volume editando o valor do campo
spec.resources.requests.storagena PVC. Para expandir o seu volume, edite a sua PVC e aumente o valor no campospec.resources.requests.storage.kubectl edit pvc <pvc-name>Exemplo
spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi -
Salve e feche a PVC.
-
Opcional: verifique se o volume está expandido. Obtenha os detalhes da PVC e faça uma nota do nome do PV.
kubectl get pvc <pvc-name> -
Descreva o seu PV e anote o ID do volume.
kubectl describe PV -
Obtenha os detalhes do volume do Block Storage for VPC e verifique a capacidade.
ibmcloud is vol <volume-ID>
Expansão manual de volumes antes da versão complementar 4.2
Conclua as etapas a seguir para expandir manualmente os volumes existentes do Block Storage for VPC que foram criados antes da versão 4.2 do add-on.
É possível expandir somente volumes que são montados por um pod do app.
-
Obtenha os detalhes de seu app e anote o nome e o
mountPathda PVC.kubectl get pod <pod-name> -n <pod-namespace> -o yaml -
Obtenha os detalhes da PVC e faça uma nota do nome do PV.
kubectl get pvc -
Descreva seu PV e obtenha o
volumeId.kubectl describe pv `pv-name` | grep volumeIdSaída de exemplo para um ID de volume de
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1.volumeId=r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1 -
Redimensione o volume usando uma solicitação PATCH. O exemplo a seguir redimensiona um volume para 250 GiB.
curl -sS -X PATCH -H "Authorization: <iam_token>" "https://<region>.iaas.cloud.ibm.com/v1/volumes/<volumeId>?generation=2&version=2020-06-16" -d '{"capacity":250}'<iam_token>- Seu token do IAM. Para recuperar seu token do IAM, execute
ibmcloud iam oauth-tokens. <region>- A região em que o cluster está, por exemplo
us-south. <volumeId>- O ID do volume recuperado anteriormente. Por exemplo,
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1. <capacity>- A capacidade aumentada em GiB, por exemplo,
250.
-
Efetue login em seu pod de app.
kubectl exec <pod-name> -it -- bash -
Execute o seguinte comando para usar binários do host.
chroot /host -
Obtenha os detalhes do sistema de arquivos e anote o caminho do
Filesystemque você deseja atualizar. Também é possívelgreppara o caminho de montagem, conforme especificado no pod de aplicativo.df -h | grep <mount-path>.df -hSaída de exemplo
Filesystem Size Used Avail Use% Mounted on overlay 98G 64G 29G 70% / tmpfs 64M 0 64M 0% /dev tmpfs 32G 0 32G 0% /sys/fs/cgroup shm 64M 0 64M 0% /dev/shm /dev/vda2 98G 64G 29G 70% /etc/hosts /dev/vdg 9.8G 37M 9.8G 1% /mount-path # Note the Filesystem path that corresponds to the mountPath that you specified in your app. tmpfs 32G 40K 32G 1% /run/secrets/kubernetes.io/serviceaccount tmpfs 32G 0 32G 0% /proc/acpi tmpfs 32G 0 32G 0% /proc/scsi tmpfs 32G 0 32G 0% /sys/firmware -
Redimensione o sistema de arquivos.
sudo resize2fs <filesystem-path>Exemplo de comando
sudo resize2fs /dev/vdg -
Verifique se o sistema de arquivos está redimensionado.
df -h
Fazendo backup e restaurando dados
Os dados no Block Storage for VPC são protegidos entre as zonas de falha redundantes em sua região. Para fazer backup manualmente de seus dados, use o comando kubectl cp do Kubernetes.
É possível usar o comando kubectl cp para copiar arquivos e diretórios para e de pods ou contêineres específicos
no cluster
Antes de iniciar: efetue login na sua conta. If applicable, target the appropriate resource group. Configure o contexto para o seu cluster.
Para fazer backup ou restaurar dados, escolha entre as opções a seguir:
Copiar dados de sua máquina local para um pod em seu cluster.
kubectl cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath>
Copiar dados de um pod em seu cluster para a sua máquina local.
kubectl cp <namespace>/<pod>:<pod_filepath>/<filename> <local_filepath>/<filename>
Copiar dados de sua máquina local para um contêiner específico que é executado em um pod em seu cluster.
kubectl cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath> -c CONTAINER
Entendendo a capacidade de solicitação de volume
O VPC Block CSI Driver calcula a capacidade de volume usando a fórmula a seguir.
-
Se o valor for fornecido em
Gi: rBytes(requestedBytes) = X * 1024^3 -
Se o valor for fornecido em
G: rBytes(requestedBytes) = X * 10^9
O valor solicitado é igual a (((rBytes+ GiB - 1) / GiB) * GiB) / GiB.
Por exemplo:
- Se um valor de
20Gifor fornecido, aplicando a fórmula acima, o volume criado será20GB. - Se um valor de
20Gfor fornecido, o volume criado será19GB.
Às vezes, a capacidade do volume criado é menor que o valor solicitado. Observe que o faturamento se aplica ao volume que é criado, não ao volume solicitado.
Atribuição de perfis confiáveis ao armazenamento em bloco
Devido a um problema conhecido, as atualizações das tags de usuário nos volumes Block Storage VPC podem não ser exibidas quando um perfil confiável é implementado. Esse problema não está presente em clusters que não usam perfis confiáveis.
Você pode usar perfis confiáveis para conceder a diferentes identidades IBM Cloud acesso a recursos em sua conta, incluindo suas soluções de armazenamento. Os perfis confiáveis centralizam o controle de acesso, eliminam a necessidade de chaves de API de longa duração e permitem que você defina o escopo das permissões para o mínimo necessário para uma tarefa específica. Para obter mais informações, consulte Configuração de um perfil confiável para componentes de armazenamento.