Configuración de un controlador IBM Cloud Object Storage para clústeres de Satellite
Descubre cómo implementar el controlador IBM Cloud Object Storage en tus clústeres de Satellite para crear y acceder a datos en múltiples proveedores de almacenamiento en la nube de S3-compatible, entre los que se incluyen IBM, AWS, Wasabi y Azure.
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
-
Cree un conjunto de credenciales de servicio en el proveedor de almacenamiento de objetos.
Creación de un secreto en el clúster que contiene las credenciales de almacenamiento de objetos
Cree el secreto de Kubernetes en el clúster que contiene las credenciales de servicio.
-
Siga los pasos basados en el proveedor de almacenamiento de objetos para crear un secreto en el clúster. Cuando se crea el secreto, todos los valores se codifican automáticamente en base64. En el siguiente ejemplo, el nombre del secreto es
cos-write-access.-
IBM Cloud Object Storage
-
Busca el ID de tu instancia de servicio.
ibmcloud resource service-instance <service_name> | grep GUID -
Cree el secreto en el clúster.
oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=api-key=API-KEY --from-literal=service-instance-id=SERVICE-INSTANCE-ID
-
-
AWS o Wasabi
oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=access-key=ACCESS-KEY-ID --from-literal=secret-key=SECRET-ACCESS-KEY ``` -
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.
-
Selecciona la versión y haz 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 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 2.2.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name ibm-object-storage-plugin --template-version 2.2 --param "helm-release-name=HELM-RELEASE-NAME" --param "parameters=PARAMETERS" --param "license=LICENSE" --param "s3provider=S3PROVIDER" --param "cos-storageclass=COS-STORAGECLASS" --param "cos-endpoint=COS-ENDPOINT" -
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 API
-
Genere una clave de API y, a continuación, solicite una señal de renovación. Para obtener más información, consulte Generación de una señal de IAM de IBM Cloud utilizando 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 2.2.
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\": \"ibm-object-storage-plugin\", \"storage-template-version\": \"2.2\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"HELM-RELEASE-NAME\", { \"entry.name\": \"PARAMETERS\", { \"entry.name\": \"LICENSE\", { \"entry.name\": \"S3PROVIDER\", { \"entry.name\": \"COS-STORAGECLASS\", { \"entry.name\": \"COS-ENDPOINT\",\"user-secret-parameters\": }
Creación de una tarea en la CLI
-
Enumera tus configuraciones de almacenamiento y toma nota de 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 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 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"
Implementación de una aplicación que utiliza IBM Cloud Object Storage
Puede utilizar el controlador ibm-object-s3fs para crear PVC que podrá utilizar en las cargas de trabajo de su clúster.
-
Cree una PVC que haga referencia a la configuración de almacenamiento de objetos.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: demo #Enter a name for your PVC. namespace: default annotations: ibm.io/auto-create-bucket: "false" ibm.io/auto-delete-bucket: "false" ibm.io/bucket: BUCKET-NAME #Enter the name of your object storage bucket. ibm.io/secret-name: SECRET-NAME #Enter the name of the secret you created earlier. ibm.io/secret-namespace: NAMESPACE #Enter the namespace where you want to create the PVC. spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: ibmc-s3fs-cos #The storage class that you want to use. -
Cree la PVC en el clúster.
oc apply -f pvc-cos.yaml -
Crea un archivo de configuración YAML para un pod que monte el PVC que acabas de crear.
apiVersion: v1 kind: Pod metadata: name: demo-pod namespace: default spec: securityContext: runAsUser: 2000 fsGroup: 2000 volumes: - name: demo-vol persistentVolumeClaim: claimName: demo containers: - name: test image: nginxinc/nginx-unprivileged imagePullPolicy: Always volumeMounts: - name: demo-vol mountPath: /mnt/cosvol -
Cree el pod en el clúster.
oc apply -f demo-pod.yaml -
Verifique que el pod se ha desplegado. Tenga en cuenta que puede tardar unos minutos en entrar en el estado
Running.oc get podsNAME READY STATUS RESTARTS AGE demo-pod 1/1 Running 0 2m58s -
Verifique que la aplicación puede grabar en el volumen de almacenamiento de bloques iniciando sesión en el pod.
oc exec demo-pod -- bash -c "touch /mnt/cosvol/test.txt && ls /mnt/cosvol" test.txt
Eliminación de la configuración de almacenamiento IBM Cloud Object Storage mediante la consola
- 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.
Eliminación de la configuración de almacenamiento IBM Cloud Object Storage utilizando la línea de mandatos
Si ya no necesitas tu configuración de IBM Cloud Object Storage, puedes eliminar tus aplicaciones, PVC, PV y asignaciones de tus clústeres.
-
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 eliminada la asignación, se eliminan los pods de controlador y las clases de almacenamiento de todos los clústeres que formaban parte de dicha asignación de almacenamiento.
ibmcloud sat storage assignment rm --assignment <assignment_ID> -
Compruebe que el controlador se ha eliminado del clúster.
- Liste las clases de almacenamiento del clúster y compruebe que se han eliminado las clases de almacenamiento.
oc get sc ``` 1. Liste los pods en el espacio de nombres `kube-system` y compruebe que se han eliminado los pods del controlador de almacenamiento. ```sh {: pre} oc get pods -n kube-system | grep cos ``` -
Opcional: elimine la configuración de almacenamiento.
- Obtenga una lista de las configuraciones de almacenamiento.
ibmcloud sat storage config ls ``` 1. Elimine la configuración de almacenamiento. ```sh {: pre} ibmcloud sat storage config rm --config <config_name> ```
Referencia de parámetros
Referencia de parámetro 2.2
| Nombre de visualización | Opción de CLI | Tipo | Descripción | Valor predeterminado |
|---|---|---|---|---|
| Nombre de release | helm-release-name |
Config | Nombre de release del diagrama de Helm. | ibm-object-storage-plugin |
| Parámetros adicionales del diagrama de Helm | parameters |
Config | Parámetros adicionales del diagrama de Helm. | N/D |
| Licencia del plugin de Object Storage | license |
Config | Licencia de plugin de Object Storage: licencia de Apache versión 2.0. Establézcalo a 'true' para aceptar la licencia e instalar el plugin. | N/D |
| Proveedor de Object Storage | s3provider |
Config | Los proveedores disponibles son 'IBM', 'AWS' y 'Wasabi'. En los demás proveedores hay que proporcionar el parámetro 'punto final del servicio de Object Storage '. | N/D |
| Región de Object Storage | cos-storageclass |
Config | Especifique la región donde se encuentra el almacenamiento de objetos. En el caso de las regiones de IBM COS, consulte https://ibm.biz/cos-endpoints-list. En el caso de Wasabi, consulte https://ibm.biz/wasabi-endpoints. En el caso de AWS, consulte https://ibm.biz/aws-endpoints. | N/D |
| Punto final del servicio de Object Storage | cos-endpoint |
Config | Punto final del servicio de Object Storage. Es obligatorio cuando se utilizan proveedores de Object Storage distintos de IBM, AWS o Wasabi. Cuando ambos están definidos, se da preferencia al 'proveedor de Object Storage'. | N/D |
Referencia de clase de almacenamiento para IBM Cloud Object Storage
| Nombre de clase de almacenamiento | Modalidad de enlace de volumen | Retener |
|---|---|---|
ibm-s3fs-cos |
Inmediato | No |
ibm-s3fs-cos-perf |
Inmediato | No |
Obtención de ayuda y soporte para IBM Cloud Object Storage
Cuando utilice IBM Cloud Object Storage, pruebe los siguientes recursos antes de abrir un caso de asistencia.
- Revise las preguntas más frecuentes en la documentación deBlock Storage for VPC.
- 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-cloudyCOS. - Si se encuentra con un problema con Block Storage for VPC, envíe una solicitud de soporte con Soporte deIBM Cloud®.