CCE Container Storage (Everest) поддерживает пользовательские ключи доступа. Таким образом, пользователи IAM могут использовать свои собственные пользовательские ключи доступа для монтирования тома OBS. Вы можете использовать IAM для управления правами доступа к OBS для пользователей IAM.
При создании тома OBS в консоли старой версии необходимо загрузить AK/SK, которые являются глобальными ключами доступа, используемыми для монтирования томов OBS. В результате все пользователи IAM в вашей учётной записи будут использовать одни и те же ключи для монтирования бакетов OBS как томов и получат одинаковые права доступа к бакетам. Однако данная настройка не позволяет задавать разные права доступа для отдельных пользователей IAM.
Если вы загрузили AK/SK (конкретно, если paas.longaksk существует в пространстве имён kube-system кластера), следует отключить глобальный секрет доступа, чтобы предотвратить выполнение неавторизованных операций пользователями IAM. Это гарантирует, что загруженный в консоли глобальный секрет доступа не будет использоваться при работе с томами OBS. Если вы не загрузили ни один AK/SK, пропустите этот раздел.
Чтобы отключить глобальный секрет доступа, выполните следующие действия:
echo -n xxx|base64echo -n yyy|base64
Запишите закодированные AK и SK.
apiVersion: v1data:access.key: WE5WWVhVNU*****secret.key: Nnk4emJyZ0*****kind: Secretmetadata:name: test-usernamespace: defaultlabels:secret.kubernetes.io/used-by: csitype: cfe/secure-opaque
Конкретно:
Параметр | Описание |
|---|---|
access.key | Base64‑закодированный AK |
secret.key | Base64‑закодированный SK |
name | Имя secret |
namespace | Пространство имён секрета |
secret.kubernetes.io/used-by: csi | Добавьте этот ярлык, если хотите сделать его доступным в консоли CCE при создании OBS PV/PVC. |
type | Тип секрета. Значение должно быть cfe/secure-opaque. При использовании этого типа данные, вводимые пользователями, автоматически шифруются. |
kubectl create -f test-user.yaml
После создания секрета с помощью AK/SK вы можете связать секрет с создаваемым PV, а затем использовать AK/SK в секрете для монтирования тома OBS.
apiVersion: v1kind: PersistentVolumemetadata:name: pv-obs-exampleannotations:pv.kubernetes.io/provisioned-by: everest-csi-provisionerspec:accessModes:- ReadWriteManycapacity:storage: 1Gicsi:nodePublishSecretRef:name: test-usernamespace: defaultdriver: obs.csi.everest.iofsType: obsfsvolumeAttributes:everest.io/obs-volume-type: STANDARDeverest.io/region: ru-moscow-1storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisionervolumeHandle: obs-normal-static-pvpersistentVolumeReclaimPolicy: DeletestorageClassName: csi-obs
Параметр | Описание |
|---|---|
nodePublishSecretRef | Секрет, указанный при монтировании.
|
fsType | Тип файла, который может быть s3fs или obsfs. Если значение s3fs, создаётся OBS‑бакет. Если значение obsfs, создаётся параллельная файловая система OBS. |
volumeHandle | Имя тома OBS. |
kubectl create -f pv-example.yaml
После создания PV вы можете создать PVC и связать его с PV.
Пример файла YAML для PVC:
apiVersion: v1kind: PersistentVolumeClaimmetadata:annotations:csi.storage.k8s.io/node-publish-secret-name: test-usercsi.storage.k8s.io/node-publish-secret-namespace: defaultvolume.beta.kubernetes.io/storage-provisioner: everest-csi-provisionereverest.io/obs-volume-type: STANDARDcsi.storage.k8s.io/fstype: obsfsname: obs-secretnamespace: defaultspec:accessModes:- ReadWriteManyresources:requests:storage: 1GistorageClassName: csi-obsvolumeName: pv-obs-example
Параметр | Описание |
|---|---|
csi.storage.k8s.io/node-publish-secret-name | Имя секрета |
csi.storage.k8s.io/node-publish-secret-namespace | Пространство имён secret |
kubectl create -f pvc-example.yaml
После создания PVC вы можете создать рабочую нагрузку и связать её с PVC для создания томов.
При динамическом создании тома OBS вы можете использовать следующий метод для указания secret:
apiVersion: v1kind: PersistentVolumeClaimmetadata:annotations:csi.storage.k8s.io/node-publish-secret-name: test-usercsi.storage.k8s.io/node-publish-secret-namespace: defaulteverest.io/obs-volume-type: STANDARDcsi.storage.k8s.io/fstype: obsfsname: obs-secretnamespace: defaultspec:accessModes:- ReadWriteManyresources:requests:storage: 1GistorageClassName: csi-obs
Параметр | Описание |
|---|---|
csi.storage.k8s.io/node-publish-secret-name | Имя secret |
csi.storage.k8s.io/node-publish-secret-namespace | Пространство имён secret |
kubectl create -f pvc-example.yaml
После создания PVC вы можете создать рабочую нагрузку и связать её с PVC для создания томов.
Вы можете использовать секрет IAM‑пользователя для монтирования OBS‑тома. Предположим, что создана нагрузка с именем obs-secret, точка монтирования в контейнере — /temp, и у IAM‑пользователя есть разрешения CCE ReadOnlyAccess и Tenant Guest. Ожидаемые результаты: Ожидаемые результаты: Ожидаемые результаты: