Назад | Перейти на главную страницу

Время загрузки Docker / Kubernetes (Minikube) - монтирование: неизвестный тип файловой системы 'glusterfs'

Я пытаюсь настроить контейнер 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