Je cours 3 zookeepers petset dont le volume utilise le volume persistant de glusterfs. Tout est bon si c'est la première fois que vous lancez le petset.Redémarrer Kubernetes petset va nettoyer le volume persistant
Une de mes exigences est que si le jeu de petset est tué, alors après que je l'ai redémarré, ils utiliseront toujours le même volume persistant.
Le problème auquel je suis confronté maintenant est qu'après le redémarrage de petset, les données d'origine dans le volume persistant seront nettoyées. Alors, comment puis-je résoudre ce problème au lieu de copier manuellement le fichier sur ce volume? et j'ai essayé reclaimPolicy conserver et supprimer et les deux nettoieront le volume. Merci.
Voici les fichiers de configuration.
pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: glusterfsvol-zookeeper-0
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
glusterfs:
endpoints: gluster-cluster
path: zookeeper-vol-0
readOnly: false
persistentVolumeReclaimPolicy: Retain
claimRef:
name: glusterfsvol-zookeeper-0
namespace: default
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: glusterfsvol-zookeeper-1
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
glusterfs:
endpoints: gluster-cluster
path: zookeeper-vol-1
readOnly: false
persistentVolumeReclaimPolicy: Retain
claimRef:
name: glusterfsvol-zookeeper-1
namespace: default
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: glusterfsvol-zookeeper-2
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
glusterfs:
endpoints: gluster-cluster
path: zookeeper-vol-2
readOnly: false
persistentVolumeReclaimPolicy: Retain
claimRef:
name: glusterfsvol-zookeeper-2
namespace: default
PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: glusterfsvol-zookeeper-0
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: glusterfsvol-zookeeper-1
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: glusterfsvol-zookeeper-2
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
petset
apiVersion: apps/v1alpha1
kind: PetSet
metadata:
name: zookeeper
spec:
serviceName: "zookeeper"
replicas: 1
template:
metadata:
labels:
app: zookeeper
annotations:
pod.alpha.kubernetes.io/initialized: "true"
spec:
terminationGracePeriodSeconds: 0
containers:
- name: zookeeper
securityContext:
privileged: true
capabilities:
add:
- IPC_LOCK
image: kuanghaochina/zookeeper-3.5.2-alpine-jdk:latest
imagePullPolicy: Always
ports:
- containerPort: 2888
name: peer
- containerPort: 3888
name: leader-election
- containerPort: 2181
name: client
env:
- name: ZOOKEEPER_LOG_LEVEL
value: INFO
volumeMounts:
- name: glusterfsvol
mountPath: /opt/zookeeper/data
subPath: data
- name: glusterfsvol
mountPath: /opt/zookeeper/dataLog
subPath: dataLog
volumeClaimTemplates:
- metadata:
name: glusterfsvol
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
La raison trouvé est que j'utilise zkServer-initialize.sh pour forcer id Zookeeper utilisation, mais dans le script, il va nettoyer le dataDir.
Bienvenue dans StackOverflow - vous devriez peut-être également partager votre configuration pour vous assurer que les utilisateurs peuvent facilement reproduire votre configuration et répondre à votre question. – pagid
Merci pour l'aide. Les fichiers de configuration sont ajoutés. – HAO