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