Отказано в доступе с Openshift PersistentStorage на GlusterFS

Я пытаюсь использовать OpenShift с PersistentStorage в кластере GusterFS.

Я запускаю один из шаблонов по умолчанию: mysql-persistent

Я установил кластер GlusterFS и создал том gv_mysql_01

Я добавил конечные точки glusterfs в openshift:

oc get endpoints
NAME                ENDPOINTS                                 AGE
glusterfs-cluster   10.100.134.26:24007,10.100.134.28:24007   1h

Я создать PersistentVolume на openshift:

cat gluster-mysql_01-storage.yaml 
apiVersion: "v1"
kind: "PersistentVolume"
metadata:
  name: "mysql" 
spec:
  capacity:
    storage: "512Mi" 
  accessModes:
    - "ReadWriteOnce"
  glusterfs: 
    endpoints: "glusterfs-cluster" 
    path: "gv_mysql_01" 
    readOnly: false
  persistentVolumeReclaimPolicy: "Recycle"

oc create -f gluster-mysql_01-storage.yaml

PersistentStorage привязан к контейнеру:

oc get pv
NAME      LABELS    CAPACITY   ACCESSMODES   STATUS    CLAIM        REASON    AGE
mysql     <none>    512Mi      RWO           Bound     test/mysql             53m

oc get pvc
NAME      LABELS                               STATUS    VOLUME    CAPACITY   ACCESSMODES   AGE
mysql     template=mysql-persistent-template   Bound     mysql     512Mi      RWO           1h

На хосте кластера том монтируется:

10.100.134.26:gv_mysql_01 on /var/lib/origin/openshift.local.volumes/pods/c111c480-8ec7-11e5-8405-0a57f8bdd6b3/volumes/kubernetes.io~glusterfs/mysql type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072)

но в журналах контейнера:

docker logs b8cd5bb3b0be
Running mysql_install_db ...
mkdir: cannot create directory '/var/lib/mysql/data': Permission denied
chmod: cannot access '/var/lib/mysql/data/mysql': Permission denied
mkdir: cannot create directory '/var/lib/mysql/data': Permission denied
chmod: cannot access '/var/lib/mysql/data/test': Permission denied
151119 14:30:20 [Warning] Can't create test file /var/lib/mysql/data/mysql-1-q2yxh.lower-test
151119 14:30:20 [Warning] Can't create test file /var/lib/mysql/data/mysql-1-q2yxh.lower-test
/opt/rh/mysql55/root/usr/libexec/mysqld: Can't change dir to '/var/lib/mysql/data/' (Errcode: 13)
151119 14:30:20 [ERROR] Aborting

Я пытался изменить владелец, группа, права /var/lib/origin/openshift.local.volumes/pods/c111c480-8ec7-11e5-8405-0a57f8bdd6b3/volumes/kubernetes.io~glusterfs/mysql с uid: gid пользователя mysql в контейнер, но он все равно не работает.

Я что-то упустил?

1
задан 20 November 2015 в 15:19
2 ответа

Попробуйте следующие настройки SELinux

setsebool -P virt_use_fusefs 1
setsebool -P virt_sandbox_use_fusefs 1
1
ответ дан 3 December 2019 в 20:45

У меня была та же ошибка, и я смог заставить ее работать, изменив стратегию политики ограничения scc по умолчанию. Поскольку вы запускаете образ openshift mysql, который запускается от имени конкретного пользователя (27), вам необходимо изменить ограниченный scc, чтобы разрешить запуск идентификатора

[root@ose1 ceph]# oc edit scc restricted

, затем отредактировать файл (с помощью vi) и изменить значение fsGroup с RunAsAny - MustRunAs

    fsGroup:
        type: MustRunAs

Вы можете увидеть это:

[root@ose1 ceph]# oc get scc restricted
NAME         PRIV      CAPS      HOSTDIR   SELINUX     RUNASUSER        FSGROUP     SUPGROUP   PRIORITY
restricted   false     []        false     MustRunAs   MustRunAsRange   MustRunAs   RunAsAny   <none>

Вам также необходимо изменить диапазон UID по умолчанию в используемом вами пространстве имен:

[root@ose1 ceph]# oc edit ns default  (sub your namespace for 'default')

openshift.io/sa.scc.uid-range: 25/10000

Я начал с 25 в качестве примера, но это позволит образу mysql openshift запускать его пользователем 27

1
ответ дан 3 December 2019 в 20:45

Теги

Похожие вопросы