Следующая проблема возникает в кластере Kubernetes с 1 главным и 3 узлами, а также на одном компьютере Kubernetes.
Я настроил Kubernetes с поддержкой flexvolume smb (https://github.com/Azure/kubernetes-volume-drivers/tree/master/flexvolume/smb). Когда я применяю новый модуль с flexvolume, узел монтирует общий ресурс smb, как ожидалось. Но Pod указывает свою долю на какой-то каталог докеров на Node.
Моя установка:
- последняя версия CentOS 7
- последняя версия Kubernetes v1.14.0
(https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/) - отключил SELinux и отключил брандмауэр
- Докер 1.13.1
- jq и cifs-utils
- https://raw.githubusercontent.com/Azure/kubernetes-volume-drivers/master/flexvolume/smb/deployment/smb-flexvol-installer/smb установлен в / usr / libexec / kubernetes / kubelet-plugins / volume / exec / microsoft.com ~ smb и исполняемый файл
Создать под с помощью
smb-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: smb-secret
type: microsoft.com/smb
data:
username: YVVzZXI=
password: YVBhc3N3b3Jk
nginx-flex-smb.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-flex-smb
spec:
containers:
- name: nginx-flex-smb
image: nginx
volumeMounts:
- name: test
mountPath: /data
volumes:
- name: test
flexVolume:
driver: "microsoft.com/smb"
secretRef:
name: smb-secret
options:
source: "//<host.with.smb.share>/kubetest"
mountoptions: "vers=3.0,dir_mode=0777,file_mode=0777"
Что происходит
- Точка монтирования на Узле создана на
/var/lib/kubelet/pods/bef26895-5ac7-11e9-a668-00155db9c92e/volumes/microsoft.com~smb
. mount
возвращает//<host.with.smb.share>/kubetest on /var/lib/kubelet/pods/bef26895-5ac7-11e9-a668-00155db9c92e/volumes/microsoft.com~smb/test type cifs (rw,relatime,vers=3.0,cache=strict,username=aUser,domain=,uid=0,noforceuid,gid=0,noforcegid,addr=172.27.72.43,file_mode=0777,dir_mode=0777,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
- чтение и запись работает должным образом на хосте и на самом узле
- on Pod
mount
for /data points totmpfs on /data type tmpfs (rw,nosuid,nodev,seclabel,size=898680k,nr_inodes=224670,mode=755)
- но содержимое каталога / данных поступает из
/run/docker/libcontainerd/8039742ae2a573292cd9f4ef7709bf7583efd0a262b9dc434deaf5e1e20b4002/
на узле.
Я попытался установить Pod с помощью PersistedVolumeClaime и получил ту же проблему. Поиск этой проблемы не дал мне решения.
В других наших модулях используются GlusterFS и heketi, которые отлично работают.
Может быть, сбой конфигурации? Что-то пропало?
РЕДАКТИРОВАТЬ: Решение
Я обновил Docker до последней проверенной версии 18.06, и теперь все работает хорошо.