Я пытаюсь настроить контейнер kubernetes / docker (используя Minikube) с смонтированным томом glusterfs, но каждый раз, когда я пытаюсь запустить службу / поды, я получаю в журналах ошибок «mount: unknown filesystem type 'glusterfs'».
Однако, когда я запускаю контейнер без настройки томов в конфигурации kubernetes, добавляю запись для сервера в / etc / hosts, создаю точку монтирования и затем монтирую ее вручную, все работает нормально. Кроме того, постоянный том отображается, как заявлено, несмотря на ошибку.
Statefulset
---
apiVersion: v1
kind: Service
metadata:
name: backend-development
labels:
app: backend-development
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: backend-development
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: backend-development
spec:
serviceName: "backend-development"
replicas: 3
template:
metadata:
labels:
app: backend-development
spec:
terminationGracePeriodSeconds: 10
containers:
- name: backend-development
image: mount-test-gluster
imagePullPolicy: Never
ports:
- containerPort: 80
name: web
securityContext:
privileged: true
volumeMounts:
- name: certificates-storage
mountPath: /etc/secrets
volumeClaimTemplates:
- metadata:
name: certificates-storage
annotations:
volume.beta.kubernetes.io/storage-class: gluster-standard
spec:
accessModes: [ "ReadWriteMany" ]
resources:
requests:
storage: 20Mi
Конечная точка Gluster:
apiVersion: v1
kind: Endpoints
metadata:
name: gluster-cluster
subsets:
- addresses:
- ip: 10.108.162.33
ports:
- port: 1 # port number is ignored, but must be legal
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: gluster-cluster
spec:
ports:
- port: 1 # port number is ignored but must be legal
Класс хранения Gluster:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gluster-standard
provisioner: kubernetes.io/glusterfs
parameters:
endpoint: "gluster-cluster"
resturl: "http://10.108.162.33:8081"
Конфигурация PersistentVolume:
apiVersion: v1
kind: PersistentVolume
metadata:
name: certificates-storage
spec:
capacity:
storage: 20Mi
accessModes:
- ReadWriteMany
glusterfs:
endpoints: gluster-cluster
path: /certificates-volume
readOnly: false
persistentVolumeReclaimPolicy: Retain
storageClassName: gluster-standard
Dockerfile для mount-test-gluster:
FROM debian:stretch
MAINTAINER me@example.org
RUN apt update && apt upgrade -y && apt install -y nginx wget gnupg2 apt-transport-https
COPY glusterfs-client-install.sh /opt/
RUN /opt/glusterfs-client-install.sh
CMD ["nginx", "-g", "daemon off;"]
glusterfs-client-install.sh
#!/bin/bash
GLUSTER_VERSION='3.10'
wget -O - http://download.gluster.org/pub/gluster/glusterfs/${GLUSTER_VERSION}/rsa.pub | apt-key add -
echo deb http://download.gluster.org/pub/gluster/glusterfs/3.10/LATEST/Debian/stretch/apt stretch main > /etc/apt/sources.list.d/gluster.list
apt update && apt install -y glusterfs-client
По состоянию на конец 2016 года это известная проблема. Похоже, что исправление было предпринято, но оно не было выпущено, что означает, что оно содержит ошибки. Возможно, вам придется некоторое время продолжать монтировать его вручную.
Вы можете следить за этой ошибкой здесь: https://github.com/rancher/rancher/issues/4348