IBM Cloud Object Storage с кластером VPC
Я следовал этому руководству, чтобы добавить объектное хранилище IBM Cloud в свой кластер.
Хотя я заставил его работать со стандартным кластером, у меня возникают проблемы при попытке подключить COS к кластеру VPC. (Ни одно хранилище объектов, ни кластер. Две совершенно разные среды)
Я включил VRF (и он был одобрен), и я создал свой собственный класс хранилища с конечной точкой s3.direct.
Однако похоже, что класс хранилища не может предоставить объем. Я получаю ошибку от 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
А вот и пвх:
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"
Описание ПВХ.
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
Любая помощь приветствуется.
0 ответов
Этот случай теперь указан в разделе устранения неполадок документации IBM Cloud здесь: https://cloud.ibm.com/docs/containers?topic=containers-cs_troubleshoot_storage#cos_pvc_pending (прокрутите вниз, чтобы найти совпадение для этой ошибки)
Может потребоваться создать секрет для доступа к корзине с использованием учетных данных в стиле HMAC вместо instanceid + IAM AKI key.
Поэтому попробуйте создать учетные данные с ключами HMAC, как описано здесь: https://cloud.ibm.com/docs/containers?topic=containers-object_storage#create_cos_service
Затем посмотрите пример аутентификации HMAC, где в документации объясняется, как создавать секреты:
kubectl create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=access-key=<access_key_ID> --from-literal=secret-key=<secret_access_key>
(Справочный документ: https://cloud.ibm.com/docs/containers?topic=containers-object_storage#create_cos_secret)