Configuración de Block Storage for VPC
Block Storage for VPC proporciona almacenamiento de datos de alto rendimiento montados en hipervisor para instancias de servidor virtual que puede suministrar dentro de una VPC.
Puede elegir los niveles de almacenamiento predefinidos con tamaños de GB e IOPS que cumplan los requisitos de sus cargas de trabajo. Para averiguar si Block Storage for VPC es la opción de almacenamiento adecuada para usted, consulte Elección de una solución de almacenamiento. Para obtener información sobre precios, consulte Fijación de precios para Block Storage for VPC.
- El complemento de clúster Block Storage for VPC está habilitado de forma predeterminada en los clústeres de VPC.
- Si desactiva el Block Storage for VPC complemento, permanecerá desactivado hasta que lo vuelva a activar. No se habilita cuando se actualiza o se renueva el maestro del clúster.
Inicio rápido para IBM Cloud Block Storage for VPC
En esta guía de inicio rápido, se crea un volumen 10Gi 5IOPS tier Block Storage for VPC en el clúster mediante la creación de un PVC para aprovisionar dinámicamente el volumen. A continuación, se crea un despliegue de app que monta la PVC.
Ahora puedes elegir una clase de almacenamiento de segunda generación.
Sus volúmenes de Block Storage for VPC pueden ser montados por múltiples pods siempre y cuando esos pods estén programados en el mismo nodo.
-
Cree un archivo para la PVC y llámelo
pvc.yaml. Elija entre una clase de almacenamiento de primera generación y una de segunda generación.Ejemplo de primera generación que utiliza la clase de almacenamiento
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: 10GiEjemplo de segunda generación que utiliza la clase de almacenamiento
ibmc-vpc-block-sdp:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: ibmc-vpc-block-sdp accessModes: - ReadWriteOnce resources: requests: storage: 10Gi -
Cree la PVC en el clúster.
kubectl apply -f pvc.yaml -
Cuando la PVC esté enlazada, cree un despliegue de app que utilice la PVC. Cree un archivo para el despliegue y llámelo
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 -
Cree el despliegue en el clúster.
kubectl apply -f deployment.yaml
Para obtener más información, consulte los siguientes enlaces.
Adición de Block Storage for VPC a sus apps
Elija el perfil de Block Storage for VPC y cree una reclamación de volumen persistente para suministrar dinámicamente Block Storage for VPC para el clúster. El suministro dinámico crea automáticamente el volumen persistente adecuado y solicita el dispositivo de almacenamiento físico en la cuenta de IBM Cloud.
-
Decida el perfil de Block Storage for VPC que mejor se ajuste a sus requisitos de capacidad y de rendimiento.
-
Seleccione la clase de almacenamiento correspondiente para el perfil de Block Storage for VPC.
De forma predeterminada, todas las clases de almacenamiento predefinidas de IBM configuran Block Storage for VPC con un sistema de archivos
ext4. Si desea utilizar otro un sistema de archivos, como por ejemploxfsoext3, cree una clase de almacenamiento personalizada.- 10 IOPS/GB:
ibmc-vpc-block-10iops-tieroibmc-vpc-block-retain-10iops-tier - 5 IOPS/GB:
ibmc-vpc-block-5iops-tieroibmc-vpc-block-retain-5iops-tier - 3 IOPS/GB:
ibmc-vpc-block-general-purposeoibmc-vpc-block-retain-general-purpose - Personalizado:
ibmc-vpc-block-customoibmc-vpc-block-retain-custom
- 10 IOPS/GB:
-
Decida la configuración de Block Storage for VPC que desea.
- Elija un tamaño para el almacenamiento. Asegúrese de que el tamaño reciba soporte del perfil de Block Storage for VPC que ha elegido.
- Decida si desea conservar los datos después de que se suprima el clúster o la reclamación de volumen persistente (PVC).
- Si desea conservar los datos, seleccione la clase de almacenamiento
retain. Cuando se suprime la PVC, únicamente ésta se suprime. El volumen persistente (PV), el dispositivo de almacenamiento físico de la cuenta de IBM Cloud y los datos siguen existiendo. Para reclamar el almacenamiento y volverlo a utilizar en el clúster, debe eliminar el PV y seguir los pasos de utilización de Block Storage for VPC existente. - Si desea que el PV, los datos y el dispositivo físico de Block Storage for VPC se supriman cuando suprima la PVC, elija una clase de almacenamiento sin la opción
retain.
- Si desea conservar los datos, seleccione la clase de almacenamiento
-
Cree un archivo de configuración para definir su reclamación de volumen persistente y guarde la configuración como archivo 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. -
Cree la PVC en el clúster.
kubectl apply -f pvc.yaml -
Verifique que la PVC se ha creado y se ha vinculado al PV. Este proceso puede tardar unos minutos.
kubectl describe pvc <pvc_name>Salida de ejemplo
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> -
Cree un archivo de configuración de despliegue para la app y monte la PVC en la 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- En la sección metadata, especifique una etiqueta para el despliegue.
matchLabels.appylabels.app- En el selector de especificación y en las secciones de metadatos de la plantilla, especifique una etiqueta para la app.
image- Especifique el nombre de la imagen de contenedor que desea utilizar. Para ver una lista de todas las imágenes disponibles en su cuenta de IBM Cloud Container Registry, ejecute
ibmcloud cr image-list. name- Especifique el nombre del contenedor que desea desplegar en el pod.
mountPath- En la sección de montajes de volúmenes de contenedor, especifique la vía de acceso absoluta del directorio en el que está montada la PVC dentro del contenedor.
name- En la sección de montajes de volúmenes de contenedor, especifique el nombre del volumen que se va a montar en el pod. Puede especificar el nombre que desee.
name- En la sección de volúmenes, especifique el nombre del volumen que se va a montar en el pod. Normalmente, este nombre es el mismo que
volumeMounts.name. claimName- En la sección de reclamación de volúmenes persistentes, especifique el nombre de la PVC que ha creado anteriormente.
-
Cree el despliegue en el clúster.
kubectl apply -f deployment.yaml -
Verifique que la PVC se ha montado correctamente en la app. Los pods pueden tardar unos minutos en pasar al estado Running.
Durante el desarrollo de la app, es posible que reciba errores que indiquen que
Unable to mount volumesen la sección Events de la salida de la CLI. El complemento de clúster Block Storage for VPC reintenta automáticamente montar el almacenamiento en sus aplicaciones. Espere unos minutos a que el almacenamiento se monte en la app.kubectl describe deployment <deployment_name>Salida de ejemplo
... Volumes: myvol: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: mypvc ReadOnly: false
Utilización de una instancia de Block Storage for VPC existente
Si dispone de un dispositivo de Block Storage for VPC físico existente que desea utilizar en el clúster, puede crear manualmente el PV y la PVC para suministrar de forma estática el almacenamiento.
Solo puede conectar un volumen a un nodo trabajador. Asegúrese de que el volumen esté en la misma zona que el nodo trabajador para que la conexión se realice correctamente.
-
Determine el volumen que desea conectar a un nodo trabajador en el clúster de VPC. Anote el ID de volumen.
ibmcloud is volumes -
Obtenga una lista de los detalles del volumen. Anote los valores de Size, Zone e IOPS. Estos valores se utilizan para crear el PV.
ibmcloud is volume <volume_id> -
Recupere una lista de nodos trabajadores en el clúster de VPC. Anote el valor de Zone del nodo trabajador que se encuentra en la misma zona que el volumen de almacenamiento.
ibmcloud ks worker ls -c <cluster_name> -
Opcional: si ha suministrado la instancia física de Block Storage for VPC mediante una clase de almacenamiento
retain, el PV y el almacenamiento físico no se eliminan cuando se elimina la PVC. Para utilizar el dispositivo físico de Block Storage for VPC en el clúster, primero debe eliminar el PV existente.-
Consulte los PV del clúster y busque el PV perteneciente al dispositivo de Block Storage for VPC. El PV está en el estado
released.kubectl get pv -
Elimine el PV.
kubectl delete pv <pv_name>
-
-
Cree un archivo de configuración para el PV. Incluya el ID, el tamaño (Size) y la zona (Zone) y el valor de IOPS que ha recuperado 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- En la sección metadata, especifique un nombre para el PV.
storage- En la sección de capacidad de la especificación, especifique el tamaño del volumen de Block Storage for VPC en gigabytes (Gi) que ha recuperado anteriormente. Por ejemplo, si el tamaño del dispositivo es de 100 GB, especifique
100Gi. iops- En la sección de atributos de volumen de CSI de la especificación, especifique el número máximo de IOPS del volumen de Block Storage for VPC que ha recuperado anteriormente.
zone- En la sección de atributos de volumen de CSI de la especificación, especifique la zona de bloque de VPC que coincida con la ubicación que ha recuperado anteriormente. Por ejemplo, si su ubicación es
Washington DC-1, utiliceus-east-1como zona. Para consultar las zonas disponibles, ejecuteibmcloud is zones. Para ver las zonas y ubicaciones de VPC disponibles, consulte Creación de una VPC en otra región. Indique el parámetro "region" cuando se especifique "zone". region- La región del nodo de trabajador a la que desea conectar el almacenamiento.
worker_node_primary_IP- La IP primaria del nodo de trabajador a la que desea conectar el almacenamiento. Puede consultar la IP primaria del nodo de trabajador ejecutando
ibmcloud ks worker ls. volumeIdyspec.csi.volumeHandle- En la sección de atributos de volumen de CSI de la especificación, especifique el ID del volumen de Block Storage for VPC que ha recuperado anteriormente.
storageClassName- Como nombre de la clase de almacenamiento de la especificación, especifique una serie vacía.
matchExpressions- En la sección de afinidad de nodos de la especificación, especifique los términos del selector de nodo para que coincidan con la zona. Para la clave, especifique
failure-domain.beta.kubernetes.io/zone. Para el valor, especifique la zona del nodo trabajador en la que desea adjuntar el almacenamiento. matchExpressions- En la sección de afinidad de nodos de la especificación, especifique los términos del selector de nodo para que coincidan con la región. Para la clave, especifique
failure-domain.beta.kubernetes.io/region. Para el valor, especifique la región del nodo trabajador en la que desea adjuntar el almacenamiento.
-
Cree el PV en el clúster.
kubectl apply -f pv.yaml -
Verifique que el PV se ha creado en el clúster.
kubectl get pv -
Cree otro archivo de configuración para la PVC. Para que la PVC coincida con el PV que ha creado anteriormente, debe elegir el mismo valor para tamaño de almacenamiento y modalidad de acceso. En el campo de clase de almacenamiento, especifique un valor de serie vacío para que coincida con el PV. Si alguno de estos campos no coincide con el PV, se creará automáticamente un nuevo PV y una instancia de Block Storage for VPC a través del aprovisionamiento dinámico.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc_name> spec: accessModes: - ReadWriteOnce resources: requests: storage: <vpc_block_storage_size> storageClassName: "" -
Cree la PVC.
kubectl apply -f pvc.yaml -
Verifique que la PVC se ha creado y se ha enlazado al PV que ha creado con anterioridad. Este proceso puede tardar unos minutos.
kubectl describe pvc <pvc_name>
- Cree un despliegue o un pod que utilice la 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>"
Actualización del complemento de clúster Block Storage for VPC
Puede actualizar el complemento Block Storage for VPC del clúster utilizando el addon update comando.
Antes de actualizar el complemento, revise el registro de cambios.
Antes de actualizar a una versión " 5.x desde una versión anterior, no debe tener ninguna instantánea de volumen en estado " failure. Para obtener más información, consulte ¿Por qué no puedo eliminar mis recursos de Block Storage for VPC instantáneas de volumen?.
-
Compruebe si hay una actualización disponible. Si hay una actualización disponible, la versión del plugin se marca con un asterisco y se muestra la versión más reciente. Anote la versión más reciente, ya que este valor se utiliza más tarde.
ibmcloud ks cluster addons --cluster <cluster_name_or_ID>Salida de ejemplo
Name Version Health State Health Status vpc-block-csi-driver 1.0.0* (2.0.0 latest) normal Addon Ready -
Actualice el complemento. Tenga en cuenta que los mandatos de actualización son diferentes en función de la versión que haya instalado.
5.0 y posterior Ejecute el mandato
addon update.ibmcloud ks cluster addon update vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y]Todas las versiones anteriores a la versión 5.0 Inhabilite y habilite el 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 que el complemento se encuentra en el estado
Addon Ready. El complemento puede tardar unos minutos en estar preparado.ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>Salida de ejemplo
Name Version Health State Health Status vpc-block-csi-driver 2.0.0 normal Addon ReadySi utiliza una clase de almacenamiento predeterminada que no sea
ibmc-vpc-block-10iops-tier, debe cambiar los valores de clase de almacenamiento predeterminada en el mapa de configuración deaddon-vpc-block-csi-driver-configmap. Para obtener más información, consulte Cambio de la clase de almacenamiento predeterminada. -
Si ha creado sus propias clases de almacenamiento basándose en las clases de almacenamiento predeterminadas de Block Storage for VPC, deberá volver a crear dichas clases de almacenamiento para actualizar los parámetros. Para obtener más información, consulte Recreación de sus propias clases de almacenamiento tras actualizar a la versión 4.2.
Volver a crear sus propias clases de almacenamiento después de actualizar a la versión 4.2
Con la versión 4.2, han cambiado los parámetros predeterminados para las clases de almacenamiento. Los parámetros sizeRange o iopsRange ya no se utilizan. Si creó alguna de sus propias clases de almacenamiento que
utilizan estos parámetros, debe editar sus propias clases de almacenamiento para eliminar estos parámetros. Para cambiar los parámetros de sus propias clases de almacenamiento, debe borrarlas y volver a crearlas. Anteriormente, se proporcionaba
a sizeRange y iopsRange cada clase de almacenamiento como información de referencia. Con la versión 4.2, estas referencias se han eliminado. Ahora, para obtener información sobre los perfiles de almacenamiento en
bloque, los tamaños y las IOPs, consulte la referencia de perfiles de almacenamiento en bloque .
-
Para encontrar los detalles de sus propias clases de almacenamiento, ejecute el siguiente comando.
kubectl describe sc STORAGECLASS -
Si la clase de almacenamiento utiliza
sizeRangeoiopsRange, obtenga la clase de almacenamiento YAML y guárdela en un archivo.kubectl get sc STORAGECLASS -o yaml -
En el archivo que ha guardado de la salida del mandato anterior, elimine los parámetros
sizeRangeoiopsRange. -
Suprima la clase de almacenamiento del clúster.
kubectl delete sc STORAGECLASS -
Vuelva a crear la clase de almacenamiento en el clúster utilizando el archivo que ha creado anteriormente.
kubectl apply -f custom-storage-class.yaml
Configuración del cifrado para Block Storage for VPC
Utilice un proveedor de servicio de gestión de claves (KMS), como por ejemplo IBM® Key Protect, para crear una clave raíz privada que utilice en la instancia de Block Storage for VPC para cifrar los datos a medida que se graban en el almacenamiento. Después de crear la clave raíz privada, cree su propia clase de almacenamiento o un secreto Kubernetes con su clave raíz y, a continuación, utilice esta clase de almacenamiento o secreto para aprovisionar su instancia Block Storage for VPC.
Habilitar el cifrado afecta Block Storage for VPC al rendimiento en aproximadamente un 20 %. Sin embargo, el impacto exacto depende del nodo trabajador y de la configuración del volumen de almacenamiento. Considere la posibilidad de permitir impactos en el rendimiento al habilitar el cifrado.
-
Cree una instancia del proveedor KMS que desee utilizar.
-
Cree una clave raíz en su instancia de KMS.
- Clave raíz de Key Protect.
- Clave raíz de Hyper Protect Crypto Services. De forma predeterminada, la clave raíz se crea sin fecha de caducidad.
-
Configurar la autorización de servicio a servicio. Autorice a Block Storage for VPC a que acceda a IBM® Key Protect. Asegúrese de dar Block Storage for VPC al menos
Readeracceso a su instancia KMS. -
Decida si desea almacenar el CRN de clave raíz de Key Protect en una clase de almacenamiento personalizada o en un secreto de Kubernetes. A continuación, siga los pasos para crear una clase de almacenamiento personalizada o un secreto de Kubernetes.
Ejemplo de clase de almacenamiento personalizada.
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- En los parámetros, introduzca
truepara crear una clase de almacenamiento que configure el cifrado para sus volúmenes Block Storage for VPC. Si establece esta opción entrue, deberá proporcionar el CRN de la clave raíz de su instancia de servicio Key Protect que desea utilizar enparameters.encryptionKey. encryptionKey- En los parámetros, especifique el CRN de la clave raíz que ha recuperado antes.
Ejemplo de secreto 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- Especifique un nombre para el secreto.
namespace- Especifique el espacio de nombres en el que desea crear el secreto.
encrypted- En los parámetros, introduzca
truepara configurar el cifrado de sus volúmenes Block Storage for VPC. encryptionKey- En los parámetros, especifique el CRN de la clave raíz de la instancia de servicio de Key Protect que desea utilizar para cifrar el volumen de Block Storage for VPC. Para utilizar el CRN de clave raíz en un secreto, primero debe convertirlo
a base64 ejecutando
echo -n "<root_key_CRN>" | base64.
-
Siga los pasos 4-9 de Adición de Block Storage for VPC a sus apps para crear una PVC con la clase de almacenamiento personalizada para suministrar Block Storage for VPC configurado para el cifrado con la clave raíz de Key Protect. A continuación, monte este almacenamiento en un pod de app.
La app puede tardar unos minutos en montar el almacenamiento y entrar en el estado Running.
-
Verifique que los datos están cifrados. Consulte los volúmenes de Block Storage for VPC y anote el ID de la instancia que ha creado. El Nombre de la instancia de almacenamiento es igual que el nombre del PV que se ha creado automáticamente al crear la PVC.
ibmcloud is volsSalida de ejemplo
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 -
Utilizando el ID del volumen, consulte los detalles de la instancia de Block Storage for VPC para asegurarse de que la clave raíz de Key Protect está almacenada en la instancia de almacenamiento. Encontrará la clave raíz en el campo Encryption key de la información de salida de la CLI.
ibmcloud is vol <volume_ID>Salida de ejemplo
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
Personalización de los valores de almacenamiento predeterminados
Puede cambiar algunos valores de PVC predeterminados utilizando una clase de almacenamiento personalizada o un secreto de Kubernetes para crear Block Storage for VPC con valores personalizados.
- ¿Cuál es la ventaja de utilizar un secreto y especificar mis parámetros en una clase de almacenamiento personalizada?
- Como administrador de clúster, cree una clase de almacenamiento personalizada cuando desee que todas las PVC que creen los usuarios de clúster se suministren con una configuración específica y no desee permitir que los usuarios de clúster alteren temporalmente la configuración predeterminada.
- Sin embargo, si se necesitan varias configuraciones y no desea crear una clase de almacenamiento personalizada para cada configuración de PVC posible, puede crear una clase de almacenamiento personalizado con los valores de PVC predeterminados y una referencia a un secreto de Kubernetes genérico. Si los usuarios del clúster deben modificar los valores predeterminados de la clase de almacenamiento personalizada, pueden hacerlo creando un secreto de Kubernetes que contenga sus valores personalizados.
Cuando desee configurar el cifrado para la instancia de Block Storage for VPC, también puede utilizar un secreto de Kubernetes si desea codificar el CRN de clave raíz de Key Protect en base64 en lugar de proporcionar la clave directamente en la clase de almacenamiento personalizada.
Modificación de la clase de almacenamiento predeterminada
Con la versión 4.2 el complemento Block Storage for VPC de clúster establece la clase de almacenamiento predeterminada en la ibmc-vpc-block-10iops-tier clase. Si tiene una clase de almacenamiento predeterminada que no sea ibmc-vpc-block-10iops-tier y las PVC utilizan la clase de almacenamiento predeterminada, se pueden generar varias clases de almacenamiento predeterminadas y llegar a provocar errores de creación de PVC. Para utilizar una clase de almacenamiento predeterminada que
no sea ibmc-vpc-block-10iops-tier, puede actualizar addon-vpc-block-csi-driver-configmap para cambiar el valor IsStorageClassDefault a false.
La clase de almacenamiento predeterminada para el complemento de clúster Block Storage for VPC es la clase de almacenamiento ibmc-vpc-block-10iops-tier.
-
Edite
addon-vpc-block-csi-driver-configmapkubectl edit cm addon-vpc-block-csi-driver-configmap -n kube-system -
Cambie el valor de
IsStorageClassDefaultafalse. -
Guardar y salir.
-
Espere 15 minutos y verifique el cambio obteniendo los detalles de la clase de almacenamiento
ibmc-vpc-block-10iops-tier.kubectl get sc ibmc-vpc-block-10iops-tier -o yaml
Creación de su propia clase de almacenamiento
Cree su propia clase de almacenamiento personalizada con los valores que desee para la instancia de Block Storage for VPC. Mediante el perfil SDP, puede especificar la capacidad y el límite máximo de rendimiento.
Los perfiles de rendimiento definidos por SSD (SDP) están disponibles en Dallas, Fráncfort, Londres, Madrid, Osaka, São Paulo, Sídney, Tokio, Toronto y Washington D.C. La creación de instantáneas para perfiles de rendimiento definidos para SSD está disponible en Dallas, Fráncfort, Tokio y Washington. D.C
Si lo deseas, puedes crear tu propia clase de almacenamiento:
- Configurar un valor de IOPs personalizado.
- Configurar Block Storage for VPC con un tipo de sistema de archivos distinto de
ext4. - Configurar el cifrado.
- Configurar el rendimiento definido por SSD.
Antes de empezar
-
Revise la información de referencia de clase de almacenamiento para determinar el
profileque desea utilizar para la clase de almacenamiento. -
También puede revisar los perfiles personalizados si desea especificar IOPs personalizados para Block Storage for VPC.
-
Si desea utilizar un perfil de rendimiento definido por SSD (SDP), revise el rango de capacidad y los detalles de IOPs. Tenga en cuenta que cuando se utiliza un rendimiento definido por SSD, la capacidad del volumen viene determinada por las IOP y el rendimiento que especifique.
-
Puede utilizar una clase de almacenamiento existente como punto de partida para crear su propia clase. Guarde los detalles de una clase de almacenamiento existente utilizando el comando
kubectl get sc <storageclass> -o yaml. -
Para mantener los costes bajos, puede aprovisionar inicialmente un PVC con baja capacidad, IOPS mínimo y rendimiento mínimo utilizando la clase de almacenamiento
ibmc-vpc-block-sdp, que tiene un mínimo de 3000 IOPS y 1000 Throughput (Mbps). Tras el aprovisionamiento, puede acceder al PVC y ajustar las IOPS y el rendimiento a medida que se definan mejor las necesidades.
Para crear una clase de almacenamiento personalizada:
-
Cree un archivo de configuración de clase de almacenamiento personalizado con el siguiente formato. Elija entre una clase de almacenamiento de primera generación y una de segunda generación.
Ejemplo de primera generación:
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- Especifique un nombre para la clase de almacenamiento.
profile- Introduzca el perfil que ha seleccionado en el paso anterior. Elija
general-purpose,sdp,5iops-tier,10iops-tier, o personalizado utilice un valor IOPs personalizado. Para encontrar los tamaños de almacenamiento admitidos para un perfil específico, consulte Perfil de IOPS por niveles. Cualquier PVC que utilice esta clase de almacenamiento debe especificar un valor de tamaño que esté dentro de este rango. csi.storage.k8s.io/fstype- En los parámetros, especifique el sistema de archivos de la instancia de Block Storage for VPC. Elija
xfs,ext3oext4. Si desea modificar la propiedad o los permisos de su volumen, debe especificarcsi.storage.k8s.io/fstypeen su propia clase de almacenamiento y su PVC debe tenerReadWriteOncecomoaccessMode. El controlador Block Storage for VPC utiliza la direcciónReadWriteOnceWithFSTypefsGroupPolicy. Para más información, consulte la documentación del controlador CSI. encrypted- En los parámetros, introduzca
truepara crear una clase de almacenamiento que configure el cifrado para su volumen Block Storage for VPC. Si establece esta opción entrue, deberá proporcionar el CRN de la clave raíz de su instancia de servicio Key Protect que desea utilizar enparameterencryptionKey. Para obtener más información sobre el cifrado de datos, consulte Configuración del cifrado para Block Storage for VPC. encryptionKey- Si ha introducido
trueparaparameters.encrypted, introduzca el CRN de la clave raíz de su instancia de servicio Key Protect que desea utilizar para cifrar su volumen Block Storage for VPC. Para obtener más información sobre el cifrado de datos, consulte Configuración del cifrado para Block Storage for VPC. zone- En los parámetros, especifique la zona de VPC en la que desea crear la instancia de Block Storage for VPC. Asegúrese de utilizar una zona a la que estén conectados los nodos trabajadores. Para listar las zonas VPC que utilizan sus nodos
de trabajo, ejecute
ibmcloud ks cluster get --cluster <cluster_name_or_ID>y mire el campo Worker Zones en la salida CLI. Si no especifica una zona, se selecciona automáticamente una de las zonas de nodo de trabajador para la instancia de Block Storage for VPC. region- La región del nodo de trabajador a la que desea conectar el almacenamiento.
tags- En los parámetros, introduzca una lista de etiquetas separadas por espacios para aplicarlas a su instancia de Block Storage for VPC. Las etiquetas pueden ayudarle a encontrar instancias más fácilmente o a agrupar sus instancias en función de características comunes, como la app o el entorno para el que se utilizan.
iops- Si ha introducido
customosdpparaprofile, introduzca un valor para los IOP que desea que utilice Block Storage for VPC. Consulte la tabla de perfil de IOPs personalizado de Block Storage for VPC para obtener una lista de los rangos de IOPs soportados por tamaño de volumen. throughput- Introduzca este valor si utiliza un perfil
sdp. Para más información, consulte los detalles de IOP y rendimiento del perfil SDP reclaimPolicy- Especifique la política de reclamación para la clase de almacenamiento. Si desea conservar el PV, el dispositivo de almacenamiento físico y los datos cuando elimine la PVC, escriba
Retain. Si desea suprimir el PV, el dispositivo de almacenamiento físico y los datos cuando elimine la PVC, escribaDelete. allowVolumeExpansion- Especifique la política de ampliación de volumen para la clase de almacenamiento. Si no desea permitir la ampliación del volumen, especifique
true. Si no desea permitir la expansión del volumen, especifiquefalse. volumeBindingMode- Elija si desea retrasar la creación de la instancia de Block Storage for VPC hasta que el primer pod que utiliza este almacenamiento esté listo para planificarse. Para retrasar la creación, especifique
WaitForFirstConsumer. Para crear la instancia al crear la PVC, especifiqueImmediate.
Ejemplo de segunda generación:
Si aprovisiona un PVC de 9.6TB utilizando la clase de almacenamiento de primera generación
ibmc-vpc-block-5iops-tier, la IOPS máxima es de 48.000 y el rendimiento máximo es de 6144 Mbps. Sin embargo, con la segunda generación de la clase de almacenamientoibmc-vpc-block-sdp-max-bandwidth, la IOPS máxima es de 64.000 y el rendimiento máximo es 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" -
Cree la clase de almacenamiento personalizada en su clúster.
kubectl apply -f custom-storageclass.yaml -
Verifique que la clase de almacenamiento está disponible en el clúster.
kubectl get scSalida de ejemplo
NAME PROVISIONER AGE <custom-storageclass> vpc.block.csi.ibm.io 4m26s -
Siga los pasos de Adición de Block Storage for VPC a las apps para crear una PVC con la clase de almacenamiento personalizada para suministrar Block Storage for VPC. A continuación, monte este almacenamiento en una app de ejemplo.
-
Opcional: Verifique el tipo de sistema de archivos de Block Storage for VPC.
Verificación del sistema de archivos de Block Storage for VPC
Puede crear una clase de almacenamiento personalizada para suministrar Block Storage for VPC con otro sistema de archivos, como por ejemplo xfs o ext3. De forma predeterminada, todas las instancias de Block Storage
for VPC se suministran con un sistema de archivos ext4.
-
Siga los pasos para crear una clase de almacenamiento personalizada con el sistema de archivos que desee utilizar.
-
Siga los pasos 4-9 de Adición de Block Storage for VPC a las apps para crear una PVC con la clase de almacenamiento personalizada para suministrar Block Storage for VPC. A continuación, monte este almacenamiento en un pod de app.
La app puede tardar unos minutos en montar el almacenamiento y entrar en el estado Running.
-
Verifique que el almacenamiento se ha montado con el sistema de archivos correcto. Consulte los pods del y anote el Nombre del pod que ha utilizado para montar el almacenamiento.
kubectl get pods -
Inicie una sesión en el pod.
kubectl exec <pod_name> -it bash -
Consulte las vías de acceso de montaje dentro de su pod.
mount | grep /dev/xvdgSalida de ejemplo para
xfs./dev/xvdg on /test type xfs (rw,relatime,attr2,inode64,noquota) -
Salga del pod.
exit
actualizar
la VolumeAttachLimit
En las versiones 5.2 y posteriores del complemento de clúster Block Storage for VPC, puede editar el número máximo de volúmenes que se pueden adjuntar a cada nodo editando el mapa de configuración. El valor predeterminado es 12.
Su cuenta debe estar aprobada para utilizar esta característica.
-
Edite el mapa de configuración. Sustituya
VALUEpor el límite de conexión de volumen que desea establecer.kubectl patch configmap/addon-vpc-block-csi-driver-configmap \ -n kube-system \ --type merge \ -p '{"data":{"VolumeAttachmentLimit":"VALUE"}}' -
Espere a que se reinicien los pods de
ibm-vpc-block-csi-nodeen el espacio de nombreskube-system. Verifique que los pods se han reiniciado.kubectl get pods -n kube-system -w| grep block-csi -
Ahora puede adjuntar volúmenes a los nodos trabajadores utilizando el suministro dinámico o creando manualmente los adjuntos. Para obtener más información, consulte Adición de Block Storage for VPC a sus apps o Utilización de una instancia existente de Block Storage for VPC.
Almacenamiento de los valores de PVC personalizados en un secreto de Kubernetes
Especifique los valores de PVC en un secreto de Kubernetes y haga referencia a este secreto en una clase de almacenamiento personalizada. A continuación, utilice la clase de almacenamiento personalizada para crear una PVC con los parámetros personalizados que establezca en el secreto.
- ¿Qué opciones tengo para utilizar el secreto de Kubernetes?
- Como administrador del clúster, puede elegir si desea permitir que cada usuario del clúster modifique los valores predeterminados de una clase de almacenamiento, o si desea crear un secreto que todos los usuarios del clúster deban utilizar y que imponga la codificación base64 para el CRN de la clave raíz de Key Protect.
- Cualquier usuario puede personalizar los valores predeterminados
- En este escenario, el administrador del clúster crea una clase de almacenamiento personalizada con los valores predeterminados de la PVC y una referencia a un secreto de Kubernetes genérico. Los usuarios de clúster pueden modificar los valores predeterminados de la clase de almacenamiento creando un secreto de Kubernetes con los valores de PVC que deseen. Para que los valores personalizados del secreto se apliquen a su instancia de Block Storage for VPC, debe crear una PVC con el mismo nombre que el secreto de Kubernetes.
- Imponer una codificación base64 para la clave raíz de Key Protect
- En este escenario, se crea una clase de almacenamiento personalizada con los valores predeterminados de la PVC y una referencia a un secreto de Kubernetes estático que sustituye o mejora los valores predeterminados de la clase de almacenamiento personalizada. Los usuarios de clúster no pueden alterar temporalmente los valores predeterminados creando su propio secreto de Kubernetes. En su lugar, los usuarios del clúster deben suministrar Block Storage for VPC con la configuración que haya elegido en la clase de almacenamiento personalizada y en el secreto. La ventaja de utilizar este método con respecto a crear únicamente una clase de almacenamiento personalizada es que puede imponer la codificación base64 para el CRN de la clave raíz de la instancia de servicio de Key Protect cuando desea cifrar los datos en la instancia de Block Storage for VPC.
- ¿Qué debo tener en cuenta antes de empezar a utilizar el secreto Kubernetes para la configuración de mi PVC?
- Algunos ajustes de PVC, como
reclaimPolicy,fstype, ovolumeBindingModeno pueden establecerse en el secreto Kubernetes y deben establecerse en la clase de almacenamiento. Como administrador del clúster, si desea permitir que los usuarios del clúster modifiquen los valores predeterminados, debe asegurarse de que ha configurado suficientes clases de almacenamiento personalizadas que hagan referencia a un secreto de Kubernetes genérico para que los usuarios puedan suministrar Block Storage for VPC con distintos valores dereclaimPolicy,fstypeyvolumeBindingMode.
Cómo permitir que todos los usuarios puedan personalizar los valores de PVC predeterminados
-
Como administrador del clúster, siga los pasos para crear una clase de almacenamiento personalizada. En el archivo YAML de la clase de almacenamiento personalizada, haga referencia al secreto de Kubernetes en la sección
metadata.parametersde la manera siguiente. Asegúrese de añadir el código tal cual y de no cambiar los nombres de las variables.csi.storage.k8s.io/provisioner-secret-name: ${pvc.name} csi.storage.k8s.io/provisioner-secret-namespace: ${pvc.namespace} -
Como usuario del clúster, cree un secreto de Kubernetes que personalice los valores predeterminados de la clase de almacenamiento.
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- Especifique un nombre para el secreto de Kubernetes.
namespace- Especifique el espacio de nombres en el que desea crear el secreto. Para hacer referencia al secreto en la PVC, la PVC debe crearse en el mismo espacio de nombres.
iops- En la sección de datos de serie, especifique el rango de IOPS que desea permitir para la instancia de Block Storage for VPC. El rango que especifique debe coincidir con el nivel de Block Storage for VPC que tiene previsto utilizar.
zone- En la sección de datos de serie, especifique la zona de VPC en la que desea crear la instancia de Block Storage for VPC. Asegúrese de utilizar una zona a la que estén conectados los nodos trabajadores. Para listar las zonas VPC que utilizan
sus nodos de trabajo, ejecute
ibmcloud ks cluster get --cluster <cluster_name_or_ID>y mire el campo Worker Zones en la salida CLI. Si no especifica una zona, se selecciona automáticamente una de las zonas de nodo de trabajador para la instancia de Block Storage for VPC. tags- En la sección de datos de serie, especifique una lista de etiquetas separadas por comas que se utilizarán cuando se cree la PVC. Las etiquetas pueden ayudarle a encontrar su instancia de almacenamiento una vez creada.
resourceGroup- En la sección de datos de cadena, introduzca el ID del grupo de recursos al que desea que acceda su instancia Block Storage for VPC. Si no especifica un grupo de recursos, la instancia se autoriza automáticamente para acceder al grupo de recursos al que pertenece el clúster.
encrypted- En la sección de datos de cadena, introduzca
truepara crear un secreto que configure el cifrado de los volúmenes de Block Storage for VPC. Si establece esta opción entrue, deberá proporcionar el CRN de la clave raíz de su instancia de servicio Key Protect que desea utilizar enparameters.encryptionKey. Para obtener más información sobre el cifrado de los datos, consulte Configuración del cifrado para Block Storage for VPC. encryptionKey- En la sección de datos, si ha introducido
trueparaparameters.encrypted, introduzca el CRN de la clave raíz de su instancia de servicio Key Protect que desea utilizar para cifrar sus volúmenes Block Storage for VPC. Para utilizar el CRN de clave raíz en un secreto, primero debe convertirlo a base64 ejecutandoecho -n "<root_key_CRN>" | base64. Para obtener más información sobre el cifrado de datos, consulte Configuración del cifrado para Block Storage for VPC.
-
Cree su secreto de Kubernetes.
kubectl apply -f secret.yaml -
Siga los pasos del tema sobre Adición de Block Storage for VPC a las apps para crear una PVC con los valores personalizados. Asegúrese de crear la PVC con la clase de almacenamiento personalizada que ha creado el administrador del clúster y de utilizar el mismo nombre para la PVC que ha utilizado para el secreto. Al utilizar el mismo nombre para el secreto y para la PVC, se indica al proveedor de almacenamiento que aplique los valores del secreto a la PVC.
Cómo forzar la codificación base64 para el CRN de clave raíz de Key Protect
-
Como administrador del clúster, cree un secreto de Kubernetes que incluya el valor codificado en base64 para el CRN de clave raíz de Key Protect. Para recuperar el CRN de la clave raíz, consulte Configuración del cifrado para 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- Especifique un nombre para el secreto de Kubernetes.
namespace- Especifique el espacio de nombres en el que desea crear el secreto. Para hacer referencia al secreto en la PVC, la PVC debe crearse en el mismo espacio de nombres.
encrypted- En la sección de datos de cadena, introduzca
truepara crear un secreto que configure el cifrado de los volúmenes de Block Storage for VPC. Si establece esta opción entrue, deberá proporcionar el CRN de la clave raíz de su instancia de servicio Key Protect que desea utilizar enparameters.encryptionKey. Para obtener más información sobre el cifrado de los datos, consulte Configuración del cifrado para Block Storage for VPC. encryptionKey- En la sección de datos, si ha introducido
trueparaparameters.encrypted, introduzca el CRN de la clave raíz de su instancia de servicio Key Protect que desea utilizar para cifrar su volumen Block Storage for VPC. Para utilizar el CRN de clave raíz en un secreto, primero debe convertirlo a base64 ejecutandoecho -n "<root_key_CRN>" | base64. Para obtener más información sobre el cifrado de datos, consulte Configuración del cifrado para Block Storage for VPC.
-
Cree el secreto de Kubernetes.
kubectl apply -f secret.yaml -
Siga los pasos para crear una clase de almacenamiento personalizada. En el archivo YAML de la clase de almacenamiento personalizada, haga referencia al secreto de Kubernetes en la sección
metadata.parametersde la manera siguiente. Asegúrese de especificar el nombre del secreto de Kubernetes que ha creado anteriormente y el espacio de nombres en el que ha creado el secreto.csi.storage.k8s.io/provisioner-secret-name: <secret_name> csi.storage.k8s.io/provisioner-secret-namespace: <secret_namespace> -
Como usuario del clúster, siga los pasos del tema sobre Adición de Block Storage for VPC a las apps para crear una PVC a partir de la clase de almacenamiento personalizada.
Configuración de la expansión del volumen
Para suministrar volúmenes que admitan la expansión, debe utilizar la clase de almacenamiento que tiene allowVolumeExpansion establecido en true.
Solo puede ampliar volúmenes montados por un pod de app.
-
Si no está utilizando la versión
4.2o posterior del complemento, actualice el complemento de clúster Block Storage for VPC en su clúster. -
Cree una PVC que utilice una clase de almacenamiento que admita la expansión de volumen.
-
Despliegue una app que utilice la PVC. Cuando cree la app, tome nota del
mountPathque especifique. -
Después de montar la PVC mediante un pod de app, puede ampliar el volumen editando el valor del campo
spec.resources.requests.storagede la PVC. Para ampliar el volumen, edite la PVC y aumente el valor del campospec.resources.requests.storage.kubectl edit pvc <pvc-name>Ejemplo
spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi -
Guarde y cierre la PVC.
-
Opcional: compruebe que el volumen se ha ampliado. Obtenga los detalles de la PVC y tome nota del nombre de PV.
kubectl get pvc <pvc-name> -
Describa el PV y anote el ID de volumen.
kubectl describe PV -
Obtenga los detalles del volumen de Block Storage for VPC y verifique la capacidad.
ibmcloud is vol <volume-ID>
Ampliación manual de volúmenes antes de la versión complementaria 4.2
Complete los siguientes pasos para ampliar manualmente los volúmenes existentes de Block Storage for VPC que se crearon antes de la versión 4.2 del complemento.
Solo puede ampliar volúmenes montados por un pod de app.
-
Obtenga los detalles de la app y apunte el nombre y la
mountPath(ruta de montaje) de la PVC.kubectl get pod <pod-name> -n <pod-namespace> -o yaml -
Obtenga los detalles de la PVC y tome nota del nombre de PV.
kubectl get pvc -
Describa el PV y obtenga el
volumeId.kubectl describe pv `pv-name` | grep volumeIdSalida de ejemplo para el ID de volumen
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1.volumeId=r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1 -
Redimensione el volumen con una petición PATCH. El ejemplo siguiente cambia el tamaño de un volumen a 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>- Su señal IAM. Para recuperar la señal de IAM, ejecute
ibmcloud iam oauth-tokens. <region>- La región en la que está el clúster, por ejemplo
us-south. <volumeId>- El ID de volumen que ha recuperado anteriormente. Por ejemplo,
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1. <capacity>- El aumento de capacidad en GiB, por ejemplo,
250.
-
Inicie una sesión en el pod de app.
kubectl exec <pod-name> -it -- bash -
Ejecute el mandato siguiente para utilizar los binarios de host.
chroot /host -
Obtenga los detalles del sistema de archivos y anote la vía de acceso de
Filesystemque desea actualizar. También puede ejecutargreppara la vía de acceso de montaje especificada en el pod de la aplicación.df -h | grep <mount-path>df -hSalida de ejemplo
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 el sistema de archivos.
sudo resize2fs <filesystem-path>Mandato de ejemplo
sudo resize2fs /dev/vdg -
Verifique que el sistema de archivos se ha redimensionado.
df -h
Copia de seguridad y restauración de datos
Los datos de Block Storage for VPC están protegidos en las zonas de error redundantes de la región. Para realizar una copia de seguridad manual de los datos, utilice el mandato Kubernetes kubectl cp.
Puede utilizar kubectl cp comando para copiar archivos y directorios desde y hacia pods o contenedores específicos
de su cluster
Antes de empezar: Inicie una sesión en su cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
Para hacer una copia de seguridad o para restaurar datos, elija entre las opciones siguientes:
Copie los datos de la máquina local en un pod del clúster.
kubectl cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath>
Copie los datos de un pod del clúster en la máquina local.
kubectl cp <namespace>/<pod>:<pod_filepath>/<filename> <local_filepath>/<filename>
Copie los datos de la máquina local en un contenedor concreto que ejecute en un pod del clúster.
kubectl cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath> -c CONTAINER
Descripción de la capacidad de solicitud de volumen
El controlador CSI de bloque de VPC calcula la capacidad de volumen utilizando la fórmula siguiente.
-
Si se proporciona el valor en
Gi: rBytes(requestedBytes) = X * 1024^3 -
Si se proporciona el valor en
G: rBytes(requestedBytes) = X * 10^9
El valor solicitado es igual a (((rBytes+ GiB - 1) / GiB) * GiB) / GiB.
Por ejemplo:
- Si se proporciona un valor de
20Gi, aplicando la fórmula anterior, el volumen que se crea es20GB. - Si se proporciona un valor de
20G, el volumen que se crea es19GB.
A veces, la capacidad del volumen que se crea es menor que el valor solicitado. Tenga en cuenta que la facturación se aplica al volumen que se crea, no al volumen solicitado.
Asignación de perfiles de confianza al almacenamiento en bloque
Debido a un problema conocido, es posible que las actualizaciones de las etiquetas de usuario en los Block Storage volúmenes VPC no se muestren cuando se implementa un perfil de confianza. Este problema no se presenta en los clusters que no utilizan perfiles de confianza.
Puede utilizar perfiles de confianza para conceder a diferentes identidades de IBM Cloud acceso a los recursos de su cuenta, incluidas sus soluciones de almacenamiento. Los perfiles de confianza centralizan el control de acceso, eliminan la necesidad de claves API de larga duración y permiten limitar los permisos al mínimo necesario para una tarea específica. Para obtener más información, consulte Configuración de un perfil de confianza para componentes de almacenamiento.