Создание SharedVolume
Ресурсы
-
[1] AWS EFS Operator: https://github.com/openshift/aws-efs-operator
-
[2] Установка/настройка AWS EFS Operator: https://access.redhat.com/articles/5025181
Создание SharedVolume
Роль Ansible communishift создаёт файловую систему AWS EFS и точку доступа, а затем создаёт Secret с именем communishift-имя-проекта-efs-credentials в проекте арендатора. Структура Secret выглядит следующим образом:
data: efs_filesystem_id: "fsap-xxxxxxxx" efs_accesspoint_id: "fs-xxxxxxxxxx"
Значения закодированы в base64. Чтобы получить их, выполните следующее:
oc get secret communishift-имя-проекта-efs-credentials -o jsonpath="{.data['efs_accesspoint_id']}" | base64 -d
oc get secret communishift-имя-проекта-efs-credentials -o jsonpath="{.data['efs_filesystem_id']}" | base64 -d
Затем создайте YAML-файл и заполните значения для accessPointID и fileSystemID.
apiVersion: aws-efs.managed.openshift.io/v1alpha1 kind: SharedVolume metadata: name: ИМЯ_ПРОЕКТА-sharedvolume namespace: ИМЯ_ПРОЕКТА spec: accessPointID: fsap-xxxxx fileSystemID: fs-xxxxx
Затем создайте объект SharedVolume:
oc apply -f имя-проекта-sharedvolume.yml
После создания оператор AWS EFS должен автоматически создать PersistentVolume, а затем PersistentVolumeClaim в пространстве имён проекта. Затем арендаторы могут монтировать этот том обычным образом.
Следующее определение Pod может быть использовано для проверки корректной работы хранилища.
apiVersion: v1
kind: Pod
metadata:
name: volume-test
namespace: communishift-dev-test
spec:
securityContext:
runAsUser: 1001
runAsGroup: 1001
fsGroup: 1001
fsGroupChangePolicy: "OnRootMismatch"
serviceAccount: volume-test
volumes:
- name: test-volume
persistentVolumeClaim:
claimName: pvc-communishift-dev-test-sharedvolume
containers:
- image: quay.io/operator-framework/ansible-operator:v1.23.0
command:
- /bin/sh
- "-c"
- "sleep 60m"
imagePullPolicy: IfNotPresent
name: alpine
volumeMounts:
- name: test-volume
mountPath: /tmp/volume_test
restartPolicy: Always
resources:
requests:
memory: "2Gi"
Want to help? Learn how to contribute to Fedora Docs ›