Local Storage Operator - Archivo
Configurar almacenamiento persistente utilizando volúmenes locales para IBM Cloud Satellite® clusters.You puede utilizar las plantillas de almacenamiento de Satellite para crear configuraciones de almacenamiento. Cuando asigne una configuración de almacenamiento a los clústeres, los controladores de almacenamiento del proveedor de almacenamiento seleccionado se instalan en el clúster.
Cuando cree una configuración de almacenamiento de archivos local, especifique los dispositivos de almacenamiento local que desea que estén disponibles como volúmenes persistentes (PV) en los clústeres. Después de asignar la configuración de almacenamiento
a un clúster, Satellite despliega el operador de almacenamiento local que monta los discos locales que ha especificado en la configuración. El operador crea además los volúmenes persistentes con el tipo de sistema de archivos que especifique
y crea la clase de almacenamiento sat-local-file-gold que puede utilizar para crear reclamaciones de volúmenes persistentes (PVC). Luego puede hacer referencia a las PVC en las cargas de trabajo de Kubernetes.
Antes de poder desplegar plantillas de almacenamiento en los clústeres de su ubicación, asegúrese de configurar Satellite Config seleccionando la opción Enable cluster admin access for Satellite Config en la consola o incluyendo
la opción --enable-config-admin al crear el clúster.
No es posible asignar el servicio de almacenamiento Satellite a grupos de recursos. Sin embargo, si va a asignar otros recursos, como la ubicación y el clúster, a grupos de recursos, deberá añadir el lector Satellite y la función de administrador de enlaces para todos los recursos de la cuenta.
Requisitos previos para el almacenamiento de archivos local
Para poder crear una configuración de almacenamiento de archivos local, debe identificar los nodos trabajadores de los clústeres que tienen los discos disponibles necesarios. A continuación, etiquete estos nodos trabajadores para que los controladores de almacenamiento local solo se instalen en estos nodos trabajadores.
-
Si no tiene clústeres en la ubicación, cree un clúster de Red Hat OpenShift on IBM Cloud o conecte clústeres de Red Hat OpenShift on IBM Cloud existentes a la ubicación. Asegúrese de que los nodos trabajadores del clúster que desea utilizar en la configuración de almacenamiento tengan al menos un disco local disponible, además de los discos que necesita Satellite. Los discos adicionales no deben estar formateados.
-
Obtenga los detalles de dispositivo de los nodos trabajadores.
-
Etiquete los nodos trabajadores que tienen un disco disponible y que desea utilizar en la configuración. Los controladores de almacenamiento local sólo se instalan en los nodos trabajadores etiquetados.
Obtención de los detalles del dispositivo para la configuración de almacenamiento de archivos local
Cuando cree la configuración de almacenamiento de archivos, debe especificar los dispositivos que desea utilizar. Las vías de acceso de dispositivo que se recuperan en los pasos siguientes se especifican como parámetros al crear la configuración.
-
Inicie una sesión en el clúster y obtenga una lista de los nodos trabajadores disponibles. Anote los nodos trabajadores que desea utilizar en la configuración.
oc get nodes -
Inicie una sesión en cada nodo trabajador que desee utilizar para la configuración de almacenamiento local.
oc debug node/<node-name> -
Cuando el pod de depuración se despliegue en el nodo trabajador, ejecute los mandatos siguientes para obtener una lista de los discos disponibles en el nodo trabajador.
- Permita los binarios de host.
chroot /host ``` 2. Obtenga una lista de sus dispositivos. ```sh {: pre} lsblk ``` 3. Obtenga los detalles de sus dispositivos. Verifique que los dispositivos que desea utilizar están desmontados y sin formato. ```sh {: pre} fdisk -l ``` -
Revise la salida del mandato para los discos disponibles. Debe utilizar discos sin montar para la configuración de almacenamiento local. En la siguiente salida de ejemplo del mandato
lsblk, el discoxvdcno está montado y no tiene particiones.NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 100G 0 disk |-xvda1 202:1 0 1G 0 part /boot `-xvda2 202:2 0 99G 0 part / xvdb 202:16 0 2G 0 disk `-xvdb1 202:17 0 2G 0 part xvdc 202:32 0 100G 0 disk xvde 202:64 0 50G 0 disk /var/data xvdh 202:112 0 64M 0 disk -
Repita los pasos anteriores para cada nodo trabajador que desee utilizar para la configuración de almacenamiento de archivos local.
Etiquetado de los nodos trabajadores cuando se utiliza el almacenamiento de archivos local
Después de haber recuperado las vías de acceso de dispositivo para los discos que desea utilizar en la configuración, etiquete los nodos trabajadores en los que están ubicados los discos.
-
Obtenga las direcciones IP de los nodos trabajadores.
oc get nodes -
Etiquete los nodos trabajadores que ha recuperado anteriormente. Los controladores de almacenamiento local se despliegan en los nodos trabajadores con esta etiqueta. Puede utilizar la etiqueta
storage=local-fileen el mandato de ejemplo o puede crear su propia etiqueta en el formatokey=value.oc label nodes <worker-IP> <worker-IP> "storage=local-file"Salida de ejemplo
node/<worker-IP> labeled node/<worker-IP> labeled -
Verifique que la etiqueta se ha añadido a los nodos trabajadores que desea utilizar. Ejecute el mandato siguiente para visualizar las etiquetas en los nodos trabajadores y resalte la etiqueta que ha añadido en el paso anterior.
oc get nodes --show-labels | grep --color=always storage=local-file
Creación y asignación de una configuración en la consola
-
En la consola Ubicaciones, selecciona la ubicación en la que deseas crear una configuración de almacenamiento.
-
Seleccione Almacenamiento > Crear configuración de almacenamiento
-
Especifique un nombre para la configuración.
-
Selecciona el tipo de almacenamiento.
-
Seleccione la versión y haga clic en Siguiente.
-
Si el Tipo de almacenamiento que ha seleccionado acepta parámetros personalizados, especifíquelos en la pestaña Parámetros.
-
Si el Tipo de almacenamiento que ha seleccionado requiere secretos, especifíquelos en la pestaña Secretos.
-
En la pestaña Clases de almacenamiento, revise las clases de almacenamiento desplegadas por la configuración o cree una clase de almacenamiento personalizada.
-
En la pestaña Asignar al servicio, seleccione el servicio al que desea asignar la configuración.
-
Pulse Completo para asignar la configuración de almacenamiento.
Creación de una configuración en la interfaz de línea comando (CLI)
-
Revise la referencia de parámetro para la versión de plantilla que desea utilizar.
-
Inicie una sesión en la CLI de IBM Cloud.
ibmcloud login -
Liste las ubicaciones de Satellite y apunte la columna
Managed from.ibmcloud sat location ls -
Ponga como destino la región
Managed fromde la ubicación de Satellite. Por ejemplo, parawdc, ponga como destinous-east. Puede obtener información adicional consultando regiones de Satellite.ibmcloud target -r us-east -
Si utiliza un grupo de recursos distinto del
default(predeterminado), póngalo como destino.ibmcloud target -g RESOURCE_GROUP -
Copie uno de los siguientes mandatos de ejemplo para la versión de plantilla que desea utilizar. Para obtener más información sobre el mandato, consulte
ibmcloud sat storage config createen la referencia de mandatos.Mandato de ejemplo para crear una configuración de la versión 4.9.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.9 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES" --param "label-key=LABEL-KEY" --param "label-value=LABEL-VALUE" --param "devicepath=DEVICEPATH" --param "fstype=FSTYPE"Mandato de ejemplo para crear una configuración de la versión 4.10.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.10 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES" --param "label-key=LABEL-KEY" --param "label-value=LABEL-VALUE" --param "devicepath=DEVICEPATH" --param "fstype=FSTYPE"Mandato de ejemplo para crear una configuración de la versión 4.11.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.11 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES" --param "label-key=LABEL-KEY" --param "label-value=LABEL-VALUE" --param "devicepath=DEVICEPATH" --param "fstype=FSTYPE"Mandato de ejemplo para crear una configuración de la versión 4.12.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.12 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES" --param "label-key=LABEL-KEY" --param "label-value=LABEL-VALUE" --param "devicepath=DEVICEPATH" --param "fstype=FSTYPE"Mandato de ejemplo para crear una configuración de la versión 4.13.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.13 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES" --param "label-key=LABEL-KEY" --param "label-value=LABEL-VALUE" --param "devicepath=DEVICEPATH" --param "fstype=FSTYPE" -
Personalice el mandato en función de los valores que desee utilizar.
-
Ejecuta el comando para crear una configuración.
-
Comprueba que se haya creado tu configuración.
ibmcloud sat storage config get --config CONFIG
Creación de una configuración en la interfaz de programación de aplicaciones (API)
-
Genere una clave de API y, a continuación, solicite una señal de renovación. Para obtener más información, consulta Generación de un token de gestión de identidades y acceso(IBM Cloud Identity and Access Management, IAM)mediante una clave de API.
-
Revise la referencia de parámetro para la versión de plantilla que desea utilizar.
-
Copie una de las siguientes solicitudes de ejemplo y sustituya las variables que desea utilizar.
Solicitud de ejemplo para crear una configuración de la versión 4.9.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.9\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }Solicitud de ejemplo para crear una configuración de la versión 4.10.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.10\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }Solicitud de ejemplo para crear una configuración de la versión 4.11.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.11\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }Solicitud de ejemplo para crear una configuración de la versión 4.12.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.12\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }Solicitud de ejemplo para crear una configuración de la versión 4.13.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.13\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
Creación de una asignación en la interfaz de línea comando (CLI)
-
Enumera tus configuraciones de almacenamiento y anota la configuración de almacenamiento que deseas asignar a tus clústeres.
ibmcloud sat storage config ls -
Obtenga el ID del clúster, del grupo de clústeres o del servicio al que desea asignar almacenamiento.
Para asegurarse de que el clúster está registrado en Satellite Config, o para crear grupos, consulte Configuración de clústeres para su uso con Satellite Config.
Mandato de ejemplo para listar grupos de clústeres.
ibmcloud sat group lsMandato de ejemplo para listar clústeres.
ibmcloud oc cluster ls --provider satelliteMandato de ejemplo para listar los servicios de Satellite.
ibmcloud sat service ls --location LOCATION -
Asigne la configuración de almacenamiento al clúster, grupo o servicio que ha recuperado anteriormente. Para obtener más información, consulta el.
ibmcloud sat storage assignment createcomandoMandato de ejemplo para asignar una configuración a un grupo de clústeres.
ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAMEMandato de ejemplo para asignar una configuración a un clúster.
ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAMEMandato de ejemplo para asignar una configuración a un clúster de servicio.
ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME -
Verifique que la asignación se ha creado.
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
Creación de una asignación de almacenamiento en la interfaz de programación de aplicaciones (API)
-
Copie una de las siguientes solicitudes de ejemplo.
Solicitud de ejemplo para asignar una configuración de a un clúster.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"Solicitud de ejemplo para asignar configuración a un grupo de clústeres.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}" -
Sustituya las variables por sus detalles y ejecute la solicitud.
-
Verifique que la asignación se ha creado listando las asignaciones.
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
Actualización de asignaciones de almacenamiento en la consola
Puede utilizar la consola deSatellite para aplicar las últimas actualizaciones de parches a sus asignaciones.
-
En la página Ubicaciones de la consola deSatellite, seleccione su ubicación.
-
Pulse el separador Almacenamiento para ver las configuraciones.
-
Haz clic en la configuración que quieras actualizar.
-
Pulse el icono Información (i) para aplicar la última revisión o parche.
-
Opcional: habilite las actualizaciones de parches automáticas para la asignación de almacenamiento. La habilitación de las actualizaciones automáticas de parches garantiza que la asignación siempre tenga los últimos arreglos de seguridad.
Si habilita las actualizaciones automáticas de parches, debe seguir aplicando las actualizaciones principales manualmente.
Actualización manual de asignaciones en la CLI
Actualice una asignación para utilizar la última revisión de plantilla de almacenamiento.
-
Liste las asignaciones de almacenamiento de Satellite, tome nota de la asignación de Satellite que desea actualizar.
ibmcloud sat storage assignment ls -
Liste las plantillas de almacenamiento de Satellite para ver las últimas versiones disponibles.
ibmcloud sat storage template ls -
Actualice la asignación de Satellite.
Mandato de ejemplo para actualizar una asignación.
ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
Habilitación de actualizaciones automáticas de parches para configuraciones y asignaciones en la CLI
Puede utilizar la CLI de sat storage assignment autopatch enable para habilitar las actualizaciones de parches automáticas para las asignaciones. La habilitación de actualizaciones automáticas de parches aplica automáticamente las
revisiones de plantilla de almacenamiento (parches) más recientes. Debe seguir aplicando las actualizaciones principales manualmente.
-
Obtener una lista de configuraciones de almacenamiento de Satellite. Anota el ID de configuración.
ibmcloud sat storage assignment ls -
Ejecute uno de los siguientes mandatos de ejemplo para habilitar las actualizaciones de parches automáticas para la configuración y sus asignaciones asociadas. Introduce el ID de configuración que has obtenido en el paso anterior.
Mandato de ejemplo para habilitar actualizaciones de parches automáticas para una asignación.
ibmcloud sat storage assignment autopatch enable --config CONFIG (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])Mandato de ejemplo para habilitar actualizaciones de parches automáticas para todas las asignaciones de almacenamiento en una configuración determinada.
ibmcloud sat storage assignment autopatch enable --config CONFIG --allMandato de ejemplo para inhabilitar las actualizaciones de parches automáticas para todas las asignaciones en una configuración específica.
ibmcloud sat storage assignment autopatch disable --config CONFIG --allMandato de ejemplo para inhabilitar las actualizaciones de parches automáticas para una única asignación y una configuración específica.
ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-IDMandato de ejemplo para inhabilitar las actualizaciones automáticas de parches para una asignación múltiple y una configuración específica.
ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
Actualización manual de configuraciones en la CLI
Puedes actualizar las configuraciones de almacenamiento de Satellite para obtener la última revisión de la plantilla de almacenamiento dentro de la misma versión principal.
-
Liste las configuraciones de almacenamiento de Satellite , tome nota de la configuración de Satellite que desea actualizar.
ibmcloud sat storage config ls -
Actualice la configuración de Satellite. Tenga en cuenta que solo se actualiza la configuración. Si desea actualizar las asignaciones que utilizan esta configuración, puede especificar la opción
--include-assignmentso puede actualizar manualmente cada asignación utilizando el mandatoassignment update.Mandato de ejemplo para actualizar una configuración a la última revisión.
ibmcloud sat storage config upgrade --config CONFIG [--include-assignments]Ejemplo comando para actualizar una configuración y sus asignaciones asociadas a la última revisión.
ibmcloud sat storage config upgrade --config CONFIG --include-assignments
Actualización de una configuración y asignaciones en la API
Puede utilizar la API de /v2/storage/satellite/updateAssignment para actualizar las asignaciones con nuevos clústeres o grupos
de clústeres. Establezca updateConfigVersion en true para aplicar la actualización de revisión.
-
Copie la siguiente solicitud de ejemplo y sustituya las variables para los grupos de clúster y las asignaciones que desea actualizar.
curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}" -
Ejecute la solicitud.
-
Obtenga los detalles de la asignación para verificar la actualización.
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
Habilitación de actualizaciones automáticas de parches para asignaciones en la API
Puede utilizar la API de /v2/storage/satellite/setAssignmentAutoupgrade para habilitar las actualizaciones de parches automáticas para las asignaciones. La habilitación de actualizaciones automáticas de parches aplica automáticamente
las revisiones de plantilla de almacenamiento (parches) más recientes. Debe seguir aplicando las actualizaciones principales manualmente.
-
Copie la siguiente solicitud de ejemplo y sustituya las variables para los grupos de clúster y las asignaciones que desea actualizar.
curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } } -
Ejecute la solicitud.
-
Obtenga los detalles de la asignación para verificar la actualización.
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -
Verifique que los recursos de configuración de almacenamiento están desplegados. Obtenga una lista de los recursos del espacio de nombres
local-storage.oc get all -n local-storageSalida de ejemplo
NAME READY STATUS RESTARTS AGE pod/local-disk-local-diskmaker-cpk4r 1/1 Running 0 30s pod/local-disk-local-provisioner-xstjh 1/1 Running 0 30s pod/local-storage-operator-96c444dfc-ttpmq 1/1 Running 0 35s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/local-storage-operator ClusterIP 172.21.173.238 <none> 60000/TCP 32s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/local-disk-local-diskmaker 1 1 1 1 1 <none> 31s daemonset.apps/local-disk-local-provisioner 1 1 1 1 1 <none> 31s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/local-storage-operator 1/1 1 1 36s NAME DESIRED CURRENT READY AGE replicaset.apps/local-storage-operator-96c444dfc 1 1 1 37s -
Obtenga una lista de las clases de almacenamiento que están disponibles.
oc get sc -n local-storage | grep localSalida de ejemplo
sat-local-file-gold kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 21m -
Obtenga una lista de los PV y verifique que el estado es
Available. Los discos locales que ha especificado al crear la configuración están disponibles como volúmenes persistentes.oc get pvSalida de ejemplo
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE local-pv-1d14680 50Gi RWO Delete Available sat-local-file-gold 50s
Despliegue de una app que utiliza el almacenamiento de archivos local
Después de crear una configuración de almacenamiento de archivos local y de asignarla a los clústeres, puede crear una app que utilice el almacenamiento de archivos local.
Puede correlacionar las PVC con volúmenes persistentes específicos añadiendo etiquetas a los volúmenes persistentes. Para obtener más información, consulte la documentación de Kubernetes para los selectores.
-
Guarde el siguiente archivo YAML en un archivo en la máquina local denominada
local-pvc.yaml.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: local-pvc spec: accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: storage: 20Gi # Important: Ensure that size of your claim is not larger than the local disk. storageClassName: sat-local-file-gold -
Cree la PVC en el clúster.
oc create -f local-pvc.yaml -
Verifique que la PVC se ha creado.
oc get pvc | grep localPara asegurarse de que haya pods planificados para los nodos trabajadores con almacenamiento, o para asegurarse de que a las aplicaciones que requieren almacenamiento no se les adelanten otros pods, puede especificar
nodeAffinityy configurar la prioridad de los pods. Puede obtener información adicional consultando en la documentación de Kubernetes prioridad y apropiación de pods, y configuración de afinidad de nodos. -
Despliegue un pod de app que utilice la PVC de almacenamiento local. Guarde el siguiente archivo YAML de la app de ejemplo como un archivo en la máquina local denominada
app.yaml. Este pod escribe los datos en un archivo denominadotest.txt. Asegúrese de especificar el nombre de la PVC que ha creado anteriormente. En este ejemplo, la especificaciónnodeAffinitygarantiza que este pod solo se planifica para un nodo trabajador con la etiqueta que se especifica.apiVersion: v1 kind: Pod metadata: name: app spec: affinity: null nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: storage operator: In values: - local-file volumes: - name: local-pvc persistentVolumeClaim: claimName: local-pvc containers: - name: local-disks image: nginx ports: - containerPort: 80 name: http-server volumeMounts: - mountPath: <mount-path-to-local-disk> name: local-pvc -
Cree el pod de la app en el clúster.
oc create -f app.yaml -
Inicie sesión en el pod de la app y verifique que puede escribir en el disco local.
kubectl exec <app-pod> -it bash -
Ejecute el mandato siguiente para cambiar el directorio por la ubicación del disco local, escribir el archivo test.txt y mostrar el contenido del archivo.
cd /<mount-path-to-local-disk> && echo "This is a test." >> test.txt && cat test.txtSalida de ejemplo
This is a test. -
Elimine el archivo de prueba y cierre la sesión del pod.
rm test.txt && exit
Eliminación de la configuración de almacenamiento de archivos local del clúster
Si ya no tiene previsto utilizar el almacenamiento de archivos local en el clúster, puede eliminar la asignación del clúster de la configuración de almacenamiento.
Tenga en cuenta que si elimina la configuración de almacenamiento, los recursos del operador de almacenamiento local y la clase de almacenamiento sat-local-file-gold se desinstalarán de todos los clústeres asignados. Las PVC, los
PV y los datos no se eliminan. Sin embargo, no podrás acceder a tus datos hasta que vuelvas a instalar el controlador en tu clúster.
Eliminar la configuración de almacenamiento de archivos local de la consola
Utilice la consola para eliminar una configuración de almacenamiento.
- En el panel de control de almacenamiento de Satellite, seleccione la configuración de almacenamiento que desea suprimir.
- Seleccione Acciones > Suprimir
- Especifique el nombre de la configuración de almacenamiento.
- Seleccione Suprimir.
Elimine la configuración de almacenamiento de archivos local de la línea de mandatos
-
Obtenga una lista de los recursos del espacio de nombres
local-storage. Si suprime la asignación de almacenamiento, estos recursos se eliminan.oc get all -n local-storageSalida de ejemplo
NAME READY STATUS RESTARTS AGE pod/local-disk-local-diskmaker-clvg6 1/1 Running 0 29h pod/local-disk-local-diskmaker-kqddq 1/1 Running 0 29h pod/local-disk-local-diskmaker-p6z9q 1/1 Running 0 29h pod/local-disk-local-provisioner-dw5g7 1/1 Running 0 29h pod/local-disk-local-provisioner-hxd9n 1/1 Running 0 29h pod/local-disk-local-provisioner-tfg95 1/1 Running 0 29h pod/local-storage-operator-df4994656-7826l 1/1 Running 0 29h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/local-storage-operator ClusterIP 172.21.147.17 <none> 60000/TCP 29h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/local-disk-local-diskmaker 3 3 3 3 3 <none> 29h daemonset.apps/local-disk-local-provisioner 3 3 3 3 3 <none> 29h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/local-storage-operator 1/1 1 1 29h NAME DESIRED CURRENT READY AGE replicaset.apps/local-storage-operator-df4994656 1 1 1 29h -
Obtenga una lista de las asignaciones de almacenamiento y busque la que ha utilizado para el clúster.
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER) -
Elimine la asignación. Una vez que se ha eliminado la asignación, los pods de controlador de almacenamiento local y las clases de almacenamiento se eliminan de todos los clústeres que formaban parte de la asignación de almacenamiento.
ibmcloud sat storage assignment rm --assignment <assignment_ID> -
Obtenga una lista de los recursos del espacio de nombres
local-storagey verifique que los pods de controlador de almacenamiento local se han eliminado.oc get all -n local-storageSalida de ejemplo
No resources found in local-storage namespace. -
Obtenga una lista de las clases de almacenamiento del clúster y verifique que las clases de almacenamiento local se han eliminado.
oc get sc -
Opcional: elimine la configuración de almacenamiento.
- Obtenga una lista de las configuraciones de almacenamiento.
ibmcloud sat storage config ls ``` 2. Elimine la configuración de almacenamiento. ```sh {: pre} ibmcloud sat storage config rm --config <config_name> ``` -
Obtenga una lista de sus PVC y anote el nombre de la PVC que desea eliminar.
oc get pvc -
Elimine los pods que hay actualmente montan la PVC.
- Obtenga una lista de todos los pods que actualmente montan la PVC que desea suprimir. Si no se devuelve ningún pod, significa que no tiene ningún pod que utilice actualmente la PVC.
oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>" ``` Salida de ejemplo ```sh {: screen} app sat-local-file-gold ``` 2. Elimine el pod que utiliza la PVC. Si el pod forma parte de un despliegue, elimine el despliegue. ```sh {: pre} oc delete pod <pod_name> ``` ```sh {: pre} oc delete deployment <deployment-name> ``` 3. Verifique que el pod o el despliegue se ha eliminado. ```sh {: pre} oc get pods ``` ```sh {: pre} oc get deployments ``` -
Suprima la PVC. Dado que todas las clases de almacenamiento de archivos locales proporcionadas por IBM se especifican con una política de recuperación
Retain, el PV y el PVC no se eliminan automáticamente al eliminar la aplicación o la implementación.oc delete pvc <pvc-name> -
Verifique que la PVC se ha eliminado.
oc get pvc -
Obtenga una lista de sus PV y anote el nombre de los PV que desea eliminar.
oc get pv -
Suprima los PV. Cuando se supriman los PV, los discos pasarán a estar disponibles para otras cargas de trabajo.
oc delete pv <pv-name> -
Verifique que el PV se ha eliminado.
oc get pv
Referencia de parámetros
Referencia de parámetro 4.9
| Nombre de visualización | Opción de CLI | Tipo | Descripción | Valor predeterminado |
|---|---|---|---|---|
| Descubrimiento automático de volúmenes de almacenamiento | auto-discover-devices |
Config | Establézcalo a 'true' si desea descubrir y utilizar automáticamente los volúmenes de almacenamiento en los nodos trabajadores. | false |
| Clave de etiqueta de nodo | label-key |
Config | 'Clave' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Valor de clave de etiqueta de nodo | label-value |
Config | 'Valor' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Ruta del dispositivo | devicepath |
Config | Ruta del dispositivo de almacenamiento local. Ejemplo: '/dev/sdc'. Obligatorio cuando 'auto-discover-devices' está establecido a 'false'. | N/D |
| Tipo de sistema de archivos | fstype |
Config | Tipo del sistema de archivos. Especifique 'ext3', 'ext4' o 'xfs'. | ext4 |
Referencia de parámetro 4.10
| Nombre de visualización | Opción de CLI | Tipo | Descripción | Valor predeterminado |
|---|---|---|---|---|
| Descubrimiento automático de volúmenes de almacenamiento | auto-discover-devices |
Config | Establézcalo a 'true' si desea descubrir y utilizar automáticamente los volúmenes de almacenamiento en los nodos trabajadores. | false |
| Clave de etiqueta de nodo | label-key |
Config | 'Clave' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Valor de clave de etiqueta de nodo | label-value |
Config | 'Valor' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Ruta del dispositivo | devicepath |
Config | Ruta del dispositivo de almacenamiento local. Ejemplo: '/dev/sdc'. Obligatorio cuando 'auto-discover-devices' está establecido a 'false'. | N/D |
| Tipo de sistema de archivos | fstype |
Config | Tipo del sistema de archivos. Especifique 'ext3', 'ext4' o 'xfs'. | ext4 |
Referencia de parámetro 4.11
| Nombre de visualización | Opción de CLI | Tipo | Descripción | Valor predeterminado |
|---|---|---|---|---|
| Descubrimiento automático de volúmenes de almacenamiento | auto-discover-devices |
Config | Establézcalo a 'true' si desea descubrir y utilizar automáticamente los volúmenes de almacenamiento en los nodos trabajadores. | false |
| Clave de etiqueta de nodo | label-key |
Config | 'Clave' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Valor de clave de etiqueta de nodo | label-value |
Config | 'Valor' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Ruta del dispositivo | devicepath |
Config | Ruta del dispositivo de almacenamiento local. Ejemplo: '/dev/sdc'. Obligatorio cuando 'auto-discover-devices' está establecido a 'false'. | N/D |
| Tipo de sistema de archivos | fstype |
Config | Tipo del sistema de archivos. Especifique 'ext3', 'ext4' o 'xfs'. | ext4 |
Referencia de parámetro 4.12
| Nombre de visualización | Opción de CLI | Tipo | Descripción | Valor predeterminado |
|---|---|---|---|---|
| Descubrimiento automático de volúmenes de almacenamiento | auto-discover-devices |
Config | Establézcalo a 'true' si desea descubrir y utilizar automáticamente los volúmenes de almacenamiento en los nodos trabajadores. | false |
| Clave de etiqueta de nodo | label-key |
Config | 'Clave' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Valor de clave de etiqueta de nodo | label-value |
Config | 'Valor' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Ruta del dispositivo | devicepath |
Config | Ruta del dispositivo de almacenamiento local. Ejemplo: '/dev/sdc'. Obligatorio cuando 'auto-discover-devices' está establecido a 'false'. | N/D |
| Tipo de sistema de archivos | fstype |
Config | Tipo del sistema de archivos. Especifique 'ext3', 'ext4' o 'xfs'. | ext4 |
Referencia de parámetro 4.13
| Nombre de visualización | Opción de CLI | Tipo | Descripción | Valor predeterminado |
|---|---|---|---|---|
| Descubrimiento automático de volúmenes de almacenamiento | auto-discover-devices |
Config | Establézcalo a 'true' si desea descubrir y utilizar automáticamente los volúmenes de almacenamiento en los nodos trabajadores. | false |
| Clave de etiqueta de nodo | label-key |
Config | 'Clave' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Valor de clave de etiqueta de nodo | label-value |
Config | 'Valor' de la etiqueta 'clave=valor' del nodo trabajador. | N/D |
| Ruta del dispositivo | devicepath |
Config | Ruta del dispositivo de almacenamiento local. Ejemplo: '/dev/sdc'. Obligatorio cuando 'auto-discover-devices' está establecido a 'false'. | N/D |
| Tipo de sistema de archivos | fstype |
Config | Tipo del sistema de archivos. Especifique 'ext3', 'ext4' o 'xfs'. | ext4 |
Referencia de clase de almacenamiento para almacenamiento de archivos local
Revise las clases de almacenamiento de Satellite para el almacenamiento de archivos local. Puede describir las clases de almacenamiento en la línea de mandatos con el mandato oc describe sc <storage-class-name>.
| Nombre de clase de almacenamiento | Sistema de archivos | Política de reclamación |
|---|---|---|
sat-local-file-gold |
ext4 o xfs |
Retener |
Cómo obtener ayuda y asistencia para el almacenamiento de archivos locales
- Consulte las preguntas más frecuentes en la documentación deRed Hat OpenShift.
- Revise la documentación de resolución de problemas para resolver problemas comunes.
- Comprueba el estado de la plataforma y los recursos de IBM Cloud en la página de estado.
- Revise Stack Overflow para ver si otros usuarios han experimentado el mismo problema. Etiquete las preguntas con ibm-cloud, para que las vean los equipos de desarrollo de IBM Cloud.
- Si tienes algún problema con el operador Local File Storage, puedes abrir una incidencia en el portal de clientes de Red Hat.