Ich möchte Volumes für Bereitstellungen mit mehr als einem Replikat verwenden. Wie definiere ich eine PersistentVolumeClaim
, so dass es für jedes Replikat generiert wird? Im Moment (siehe Beispiel unten) kann ich ein Volume erstellen und es den Pods zuweisen. Das Problem ist, dass nur ein Volumen erzeugt wird, die diese Fehlermeldungen verursacht:Wie werden Volumes in Kubernetes-Bereitstellungen verwendet?
38m 1m 18 {kubelet worker-1.loc} Warning FailedMount Unable to mount volumes for pod "solr-1254544937-zblou_default(610b157c-549e-11e6-a624-0238b97cfe8f)": timeout expired waiting for volumes to attach/mount for pod "solr-1254544937-zblou"/"default". list of unattached/unmounted volumes=[datadir]
38m 1m 18 {kubelet worker-1.loc} Warning FailedSync Error syncing pod, skipping: timeout expired waiting for volumes to attach/mount for pod "solr-1254544937-zblou"/"default". list of unattached/unmounted volumes=[datadir]
Wie kann ich Kubernetes sage ein Volumen für jede Replik zu generieren?
Ich verwende Kubernetes 1.3.
Beispiel:
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: solr-datadir
annotations:
volume.alpha.kubernetes.io/storage-class: anything
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: solr
labels:
team: platform
tier: search
app: solr
spec:
revisionHistoryLimit: 3
replicas: 3
template:
metadata:
name: solr
labels:
team: platform
tier: search
app: solr
spec:
containers:
- name: solr
image: solr:6-alpine
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
resources:
requests:
cpu: 512m
memory: 512Mi
command:
- /bin/bash
args:
- -c
- /opt/solr/bin/solr start -f -z zookeeper:2181
volumeMounts:
- mountPath: "/opt/solr/server/solr/mycores"
name: datadir
volumes:
- name: datadir
persistentVolumeClaim:
claimName: solr-datadir
Erzeugen Schoten:
$ kubectl get pods -lapp=solr
NAME READY STATUS RESTARTS AGE
solr-1254544937-chenr 1/1 Running 0 55m
solr-1254544937-gjud0 0/1 ContainerCreating 0 55m
solr-1254544937-zblou 0/1 ContainerCreating 0 55m
generierten Volumen:
$ kubectl get pv
NAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
pvc-3955e8f1-549e-11e6-94be-060ea3314be5 50Gi RWO Bound default/solr-datadir 57m
Erzeugen Ansprüche:
0.123.$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
solr-datadir Bound pvc-3955e8f1-549e-11e6-94be-060ea3314be5 0 57m
Beachten Sie, dass Bereitstellungen derzeit nur Pods und Replikatsets und keine PetSets unterstützen. –
Und das wird von GKE zumindest in der Beta noch nicht unterstützt :( –
Warten auf 1.5 auf GKE –