Ibm cloud 使用VPC群集的IBM云对象存储
为了将IBMCloud对象存储添加到集群中,我一直遵循该指南 虽然我已经让它与标准集群协同工作,但我在尝试将COS连接到VPC集群时遇到了问题。(不是相同的对象存储,也不是群集。两个完全不同的环境) 我已经启用了VRF(并已获得批准),并且使用s3.direct端点创建了自己的storageclass 但是,存储类似乎无法配置卷。我收到的错误来自TokenManagerRetrieveError:检索令牌时出错。我找不到任何关于这个案件的文件。我已经检查了账户IAM代币,它们已经就位。以下是来自以下命令的事件。特别见第二段 以下是我创建的存储类:Ibm cloud 使用VPC群集的IBM云对象存储,ibm-cloud,vpc,ibm-iam,cloud-object-storage,Ibm Cloud,Vpc,Ibm Iam,Cloud Object Storage,为了将IBMCloud对象存储添加到集群中,我一直遵循该指南 虽然我已经让它与标准集群协同工作,但我在尝试将COS连接到VPC集群时遇到了问题。(不是相同的对象存储,也不是群集。两个完全不同的环境) 我已经启用了VRF(并已获得批准),并且使用s3.direct端点创建了自己的storageclass 但是,存储类似乎无法配置卷。我收到的错误来自TokenManagerRetrieveError:检索令牌时出错。我找不到任何关于这个案件的文件。我已经检查了账户IAM代币,它们已经就位。以下是来自
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cos-vpc
namespace: default
parameters:
ibm.io/chunk-size-mb: "16"
ibm.io/curl-debug: "false"
ibm.io/debug-level: "warn"
ibm.io/iam-endpoint: "https://iam.bluemix.net"
ibm.io/kernel-cache: "true"
ibm.io/multireq-max: "20"
ibm.io/object-store-endpoint: "https://s3.direct.eu-de.cloud-object-storage.appdomain.cloud"
ibm.io/object-store-storage-class: eu-de-standard
ibm.io/parallel-count: "2"
ibm.io/s3fs-fuse-retry-count: "5"
ibm.io/stat-cache-size: "100000"
ibm.io/tls-cipher-suite: AESGCM
provisioner: "ibm.io/ibmc-s3fs"
reclaimPolicy: Delete
volumeBindingMode: Immediate
这是pvc:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: hasher-java-pvc
namespace: default
annotations:
ibm.io/auto-create-bucket: "false"
ibm.io/auto-delete-bucket: "false"
ibm.io/bucket: uia-bucket2
ibm.io/secret-name: cos-write-access
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "13Gi"
storageClassName: "cos-vpc"
描述pvc
Name: hasher-java-pvc
Namespace: default
StorageClass: cos-vpc
Status: Pending
Volume:
Labels: <none>
Annotations: ibm.io/auto-create-bucket: false
ibm.io/auto-delete-bucket: false
ibm.io/bucket: uia-bucket2
ibm.io/secret-name: cos-write-access
volume.beta.kubernetes.io/storage-provisioner: ibm.io/ibmc-s3fs
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Mounted By: hasher-java-7c44896747-d5g8q
hasher-java-7c44896747-gm2m9
hasher-java-7c44896747-qhrxm
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Provisioning 4m52s (x3 over 5m53s) ibm.io/ibmc-s3fs_ibmcloud-object-storage-plugin-d76dc998c-5wsx5_0f82cf0d-69e3-11ea-bdd1-2a0e250d0c0b External provisioner is provisioning volume for claim "default/hasher-java-pvc"
Warning ProvisioningFailed 4m22s (x3 over 5m23s) ibm.io/ibmc-s3fs_ibmcloud-object-storage-plugin-d76dc998c-5wsx5_0f82cf0d-69e3-11ea-bdd1-2a0e250d0c0b failed to provision volume with StorageClass "cos-vpc": hasher-java-pvc:bppmei1f05qovjlv74vg:cannot access bucket uia-bucket2: TokenManagerRetrieveError: error retrieving the token
Normal ExternalProvisioning 12s (x24 over 5m53s) persistentvolume-controller waiting for a volume to be created, either by external provisioner "ibm.io/ibmc-s3fs" or manually created by system administrator
Name:hasher-java-pvc
名称空间:默认值
StorageClass:cos vpc
状态:待定
卷:
标签:
注释:ibm.io/auto-create-bucket:false
ibm.io/auto-delete-bucket:false
ibm.io/bucket:uia-bucket2
ibm.io/secret-name:cos写访问
volume.beta.kubernetes.io/storage-provisioner:ibm.io/ibmc-s3fs
终结器:[kubernetes.io/pvc保护]
容量:
访问模式:
VolumeMode:文件系统
安装人:hasher-java-7c44896747-d5g8q
hasher-java-7c44896747-gm2m9
hasher-java-7c44896747-qhrxm
活动:
从消息中键入原因年龄
---- ------ ---- ---- -------
正常设置4m52s(x3/5m53s)ibm.io/ibmc-s3fs\u ibmcloud-object-storage-plugin-d76dc998c-5wsx5\u 0f82cf0d-69e3-11ea-bdd1-2a0e250d0c0b外部设置器是声明“默认/哈希器java pvc”的设置卷
警告配置失败4m22s(x3超过5m23s)ibm.io/ibmc-s3fs_ibmcloud-object-storage-plugin-d76dc998c-5wsx5_0f82cf0d-69e3-11ea-bdd1-2a0e250d0c0b未能使用存储类“cos-vpc”配置卷:哈希器java pvc:bppmei1f05qovjlv74vg:无法访问bucket uia-bucket2:Tokenmanager错误:检索令牌
普通外部资源调配12s(x24/5m53s)persistentvolume控制器,等待外部资源调配器“ibm.io/ibmc-s3fs”或系统管理员手动创建卷
非常感谢您的帮助 此案例现在列在IBM Cloud文档的疑难解答部分:(向下滚动以查找此错误的匹配项) 它可能需要使用HMAC风格的凭据而不是instanceid+IAM AKI密钥来创建访问bucket的秘密 因此,请尝试使用HMAC密钥创建凭据,如下所述: 然后参见HMAC身份验证示例,其中文档解释了如何创建机密:
kubectl创建机密的通用cos写访问——type=ibm/ibmc-s3fs——from literal=access key=)