хорошо, сейчас я бьюсь головой об стену в течение нескольких дней ...
мой сценарий использования: я нахожусь в своем собственном облаке, работаю на ubuntu и настраиваю kubernetes на 4 машинах, один мастер3 рабочих.Я создал личный реестр и сертификат-менеджер и т. Д. И т. Д.
также общие ресурсы nfs находятся на рабочих узлах
У меня есть часть программного обеспечения, которую должен запускать от имени root внутри модуля. Теперь я хочу, чтобы этот пользователь root сохранил данные на постоянном томе в общей папке nfs.
root_squash кусает меня, но ...
Я создал тома и утверждения ивсе работает нормально, если я не root внутри стручка.когда root файлы в общих ресурсах nfs никому не нужны: nogroup и пользователь root внутри модуля больше не могут их использовать ...
что делать?
1) экспортировать ресурс nfsс параметром no_root_squash, но это кажется очень плохой идеей, учитывая проблемы с безопасностью, не уверен, что это можно исправить только с помощью правил брандмауэра?
2) я использовал все виды параметров securityContext для fsGroup и uid en gid mountпараметры, все работают нормально, пока вы не являетесь пользователем root в de pod ... но я не уверен, полностью ли я это понимаю, так что
My pc yaml:
apiVersion: v1
kind: PersistentVolume
metadata:
name: s03-pv0004
annotations:
pv.beta.kubernetes.io/gid: "1023"
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: slow
mountOptions:
- hard
- nfsvers=4.1
nfs:
path: /data/k8s/pv0004
server: 212.114.120.61
Asвы видите, что я создал выделенный nfsuser с uid 1023 и использовал его, чтобы заставить стручки хранить данные, поскольку этот пользователь ... работает нормально, пока я не root в стручках ...
pods iя запускаю стручки MarkLogic в наборе с состоянием, например:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: marklogic
namespace: default
spec:
selector:
matchLabels:
app: marklogic
serviceName: "ml-service"
replicas: 3
template:
metadata:
labels:
app: marklogic
spec:
securityContext:
fsGroup: 1023
... more
runAsUser: 1023 работает, но опять же нет, если я хочу быть пользователем root внутри стручка ...
Мой вопрос: Можноэто будет сделано, запустить модуль от имени root и по-прежнему использовать nfs как постоянный том с защищенным общим ресурсом nfs (который не использует no_root_squash) ???
или мне нужно отбросить идею nfs и перейти к альтернативе типа glusterfs?