1 votes

Temps de démarrage de Docker/Kubernetes (Minikube) - mount : type de système de fichiers 'glusterfs' inconnu

Je cherche à configurer un conteneur kubernetes/docker (en utilisant Minikube) avec un volume glusterfs monté, mais chaque fois que j'essaie de démarrer le service/les pods j'obtiens "mount: type de système de fichiers inconnu 'glusterfs'" dans les journaux d'erreur.

Cependant, lorsque je démarre le conteneur sans les volumes configurés dans la configuration kubernetes, ajoute une entrée pour le serveur dans /etc/hosts, crée un point de montage et le monte manuellement, cela fonctionne bien. De plus, le volume persistant est considéré comme réclamé malgré les erreurs.

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

Point de terminaison de Gluster :

apiVersion: v1
kind: Endpoints
metadata:
  name: gluster-cluster 
subsets:
- addresses:              
  - ip: 10.108.162.33
  ports:                  
  - port: 1 # le numéro de port est ignoré, mais doit être valide
    protocol: TCP

---
apiVersion: v1
kind: Service
metadata:
  name: gluster-cluster
spec:
  ports:
  - port: 1 # le numéro de port est ignoré, mais doit être valide

Classe de stockage 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"

Configuration du 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 pour 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

1voto

jdopenvpn Points 126

À la fin de 2016, c'est un problème connu. Il semble qu'une correction ait été tentée mais qu'elle n'ait pas été publiée, ce qui signifie qu'elle est boguée. Vous devrez peut-être continuer à le monter manuellement pendant un certain temps.

Vous pouvez suivre ce bug ici: https://github.com/rancher/rancher/issues/4348

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X