IBM Cloud Object Storage 驱动程序
您可以使用 IBM Cloud Object Storage 驱动程序模板在多个 s3 存储器提供程序 (例如 IBM,AWS,Wasabi 和 Azure等) 中创建和访问数据。 请查看以下步骤,以将 IBM Cloud Object Storage 驱动程序部署到 Satellite 集群。
在可以将存储器模板部署到您所在位置的集群之前,请确保通过在控制台中选择 对 Satellite Config 启用集群管理访问权 选项或者在创建集群时包含 --enable-config-admin
选项来设置 Satellite 配置。
不能将 Satellite 存储服务的作用域限定为资源组。 但是,如果要将其他资源 (例如,位置和集群) 限定为资源组,那么需要为帐户中的所有资源添加 Satellite 阅读器和链接管理员角色。
先决条件
-
在对象存储器提供程序中创建一组服务凭证。
在集群中创建包含对象存储器凭证的私钥
在包含服务凭证的集群中创建 Kubernetes 私钥。
-
遵循基于对象存储器提供程序的步骤在集群中创建私钥。 创建私钥时,所有值都会自动编码为 Base64。 在下面的示例中,秘密名称是
cos-write-access
。-
IBM Cloud Object Storage
-
查找服务实例 ID。
ibmcloud resource service-instance <service_name> | grep GUID
-
在集群中创建私钥。
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 或 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
-
在控制台中创建和分配配置
-
查看 参数参考。
-
从 "位置" 控制台,选择要在其中创建存储配置的位置。
-
选择 存储器 > 创建存储器配置
-
输入配置名称。
-
选择存储类型。
-
选择版本并单击下一步
-
如果您选择的 存储器类型 接受定制参数,请在 参数 选项卡上输入这些参数。
-
如果您选择的 存储器类型 需要私钥,请在 私钥 选项卡上输入私钥。
-
在 存储类 选项卡上,查看配置所部署的存储类或创建定制存储类。
-
在 分配给服务 选项卡上,选择要将配置分配给的服务。
-
单击 完成 以分配存储器配置。
在 CLI 中创建配置
-
查看要使用的模板版本的 参数参考。
-
登录到 IBM Cloud CLI。
ibmcloud login
-
列出 Satellite 位置并记下
Managed from
列。ibmcloud sat location ls
-
将 Satellite 位置的
Managed from
区域作为目标。 例如,对于wdc
targetus-east
。 有关更多信息,请参阅 Satellite 区域。ibmcloud target -r us-east
-
如果使用除
default
以外的资源组,请将其作为目标。ibmcloud target -g <resource-group>
-
针对要使用的模板版本,复制以下某个示例命令。 有关该命令的更多信息,请参阅 命令参考 中的
ibmcloud sat storage config create
。用于创建 V 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"]
-
根据要使用的设置定制命令。
-
运行命令创建配置。
-
验证是否已创建配置。
ibmcloud sat storage config get --config CONFIG
在 API 中创建配置
-
生成 API 密钥,然后请求刷新令牌。 有关详细信息,请参阅 使用 API 密钥生成 IBM Cloud IAM 令牌。
-
查看要使用的模板版本的 参数参考。
-
复制以下某个示例请求并替换要使用的变量。
用于创建 V 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\": }
在 CLI 中创建任务
-
列出存储配置,并记下要分配给集群的存储配置。
ibmcloud sat storage config ls
-
获取要向其分配存储器的集群,集群组或服务的标识。
要确保集群已向 Satellite 配置注册或要创建组,请参阅 设置集群以与 Satellite 配置配合使用。
用于列出集群组的示例命令。
ibmcloud sat group ls
用于列出集群的示例命令。
ibmcloud oc cluster ls --provider satellite
用于列出 Satellite 服务的示例命令。
ibmcloud sat service ls --location <location>
-
将存储器配置分配给先前检索的集群,组或服务。 有关更多信息,请参阅
ibmcloud sat storage assignment create
命令。用于将配置分配给集群组的示例命令。
ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAME
用于将配置分配给集群的示例命令。
ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAME
用于将配置分配给服务集群的示例命令。
ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
-
确认任务已创建。
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
在 API 中创建存储器分配
-
复制以下某个示例请求。
用于将 配置分配给集群的示例请求。
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\"}"
请求 将配置分配给集群组的示例。
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\"}"
-
将变量替换为详细信息并运行请求。
-
通过列出分配来验证是否已创建分配。
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
在控制台中更新存储器分配
您可以使用 Satellite 控制台 对分配应用最新补丁更新。
-
从 Satellite 控制台中的“位置”页面,选择您的位置。
-
单击 存储器 选项卡以查看配置。
-
单击要更新的配置。
-
单击信息 信息 (i) 图标以应用最新修订版或补丁。
-
可选: 为存储器分配启用自动补丁更新。 启用自动补丁更新可确保分配始终具有最新的安全修订。
如果启用自动补丁更新,那么仍必须手动应用主要更新。
在 CLI 中手动升级分配
升级分配以使用最新的存储器模板修订版。
-
列出 Satellite 存储分配,记录要升级的 Satellite 分配。
ibmcloud sat storage assignment ls
-
列出 Satellite 存储模板以查看最新的可用版本。
ibmcloud sat storage template ls
-
升级 Satellite 分配。
用于升级分配的示例命令。
ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
在 CLI 中为配置和分配启用自动补丁更新
您可以使用 sat storage assignment autopatch enable
CLI 为分配启用自动补丁更新。 启用自动补丁更新将自动应用最新的存储模板修订 (补丁)。 您仍必须手动应用主要更新。
-
列出 Satellite 存储配置。 记下配置 ID。
ibmcloud sat storage assignment ls
-
运行以下某个示例命令以对配置及其关联的分配启用自动补丁更新。 输入您在上一步中获取的配置 ID。
用于对分配启用自动补丁更新的示例命令。
ibmcloud sat storage assignment autopatch enable --config CONFIG (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])
用于对给定配置下的所有存储器分配启用自动补丁更新的示例命令。
ibmcloud sat storage assignment autopatch enable --config CONFIG --all
用于禁用特定配置下所有分配的自动补丁更新的示例命令。
ibmcloud sat storage assignment autopatch disable --config CONFIG --all
用于禁用单个分配和特定配置的自动补丁更新的示例命令。
ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID
用于对多个分配和特定配置禁用自动补丁更新的示例命令。
ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
在 API 中升级配置和分配
您可以使用 /v2/storage/satellite/updateAssignment
API 通过新的集群或集群组更新分配。 将 updateConfigVersion
设置为 true
以应用修订更新。
-
复制以下示例请求,并替换要更新的集群组和分配的变量。
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\"}"
-
运行请求。
-
获取分配的详细信息以验证更新。
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
在 API 中为分配启用自动补丁更新
您可以使用 /v2/storage/satellite/setAssignmentAutoupgrade
API 为分配启用自动补丁更新。 启用自动补丁更新将自动应用最新的存储模板修订 (补丁)。 您仍必须手动应用主要更新。
-
复制以下示例请求,并替换要更新的集群组和分配的变量。
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", ...], } }
-
运行请求。
-
获取分配的详细信息以验证升级。
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
部署使用 IBM Cloud Object Storage 的应用程序
您可以使用 ibm-object-s3fs
驱动程序来创建可在集群工作负载中使用的 PVC。
-
创建引用对象存储器配置的 PVC。
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.
-
在集群中创建 PVC。
oc apply -f pvc-cos.yaml
-
为安装您创建的 PVC 的 pod 创建 YAML 配置文件。
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
-
在群集中创建 pod。
oc apply -f demo-pod.yaml
-
验证 pod 是否已部署。 请注意,应用程序进入
Running
状态可能需要几分钟时间。oc get pods
NAME READY STATUS RESTARTS AGE demo-pod 1/1 Running 0 2m58s
-
通过登录到 pod,验证应用程序是否可以写入块存储卷。
oc exec demo-pod -- bash -c "touch /mnt/cosvol/test.txt && ls /mnt/cosvol" test.txt
使用控制台除去 IBM Cloud Object Storage 存储器配置
- 从 Satellite 存储仪表板中,选择要删除的存储配置。
- 选择 操作 > 删除
- 输入存储器配置的名称。
- 选择删除。
使用命令行除去 IBM Cloud Object Storage 存储器配置
如果不再需要 IBM Cloud Object Storage 配置,那么可以从集群中除去应用程序,PVC,PV 和分配。
-
列出存储器分配并查找用于集群的存储分配。
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
-
除去分配。 除去分配后,将从属于存储分配的所有集群中除去驱动程序 pod 和存储类。
ibmcloud sat storage assignment rm --assignment <assignment_ID>
-
验证是否已从集群中除去驱动程序。
-
列出集群中的存储类,并验证是否已除去这些存储类。
oc get sc
-
列出
kube-system
名称空间中的 pod,并验证是否已除去存储驱动程序 pod。oc get pods -n kube-system | grep cos
-
-
可选: 除去存储器配置。
-
列出存储配置。
ibmcloud sat storage config ls
-
除去存储器配置。
ibmcloud sat storage config rm --config <config_name>
-
参数参考
2.2 参数参考
显示名称 | CLI 选项 | 类型 | 描述 | 必需? | 缺省值 |
---|---|---|---|---|---|
发行版名称 | helm-release-name |
配置 | Helm 图表发行版名称。 | 是 | ibm-object-storage-plugin |
Helm 图表其他参数 | parameters |
配置 | Helm 图表其他参数。 | 否 | 不适用 |
Object Storage 插件许可证 | license |
配置 | Object Storage 插件许可证:Apache 许可证 V2.0。 设置为 true 以接受许可并安装插件。 |
是 | 不适用 |
Object Storage 提供程序 | s3provider |
配置 | 可用的提供程序有 IBM 、AWS 和 Wasabi 。 对于其他提供商,您必须提供 Object Storage service endpoint 参数。 |
否 | 不适用 |
Object Storage 区域 | cos-storageclass |
配置 | 输入对象存储器所在的区域。 对于 IBM COS 区域,请参阅 https://ibm.biz/cos-endpoints-list。 对于 Wasabi,请参阅 https://ibm.biz/wasabi-endpoints。 对于 AWS,请参阅 https://ibm.biz/aws-endpoints。 | 是 | 不适用 |
Object Storage 服务端点 | cos-endpoint |
配置 | Object Storage 服务端点。 在使用除 IBM、AWS 或 Wasabi 以外的 Object Storage 提供程序时必需。 当两者都设置时,优先使用 Object Storage provider 。 |
否 | 不适用 |
IBM Cloud Object Storage 的存储类引用
存储类名 | 卷绑定方式 | Retain |
---|---|---|
ibm-s3fs-cos |
立即 | 错 |
ibm-s3fs-cos-perf |
立即 | 错 |
获取有关 IBM Cloud Object Storage 的帮助和支持
使用 IBM Cloud Object Storage时,请先尝试以下资源,然后再打开支持案例。
- 查看 Block Storage for VPC 文档 中的常见问题解答。
- 查看 故障诊断文档 以进行故障诊断并解决常见问题。
- 通过转至 "状态" 页面,检查 IBM Cloud 平台和资源的状态。
- 查看 Stack Overflow 以了解其他用户是否迂到了相同的问题。 使用
ibm-cloud
和COS
标记任何问题。 - 如果迂到 Block Storage for VPC问题,请向 IBM Cloud® 支持提交支持请求。