Pod hat ungebundenen PersistentVolumeClaims aber das Volumen Ansprüche begrenzt ist
Ich möchte erstellen Sie eine statefulset elasticsearch in kubernetes auf virtualbox. Ich bin nicht der cloud-Anbieter, so dass ich zwei persistent volume lokal für meine zwei Replikate meiner statefulset :
pv0:
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv-elk-0
namespace: elk
labels:
type: local
spec:
storageClassName: gp2
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data/pv0"
pv1:
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv-elk-1
namespace: elk
labels:
type: local
spec:
storageClassName: gp2
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data/pv1"
Statefulset :
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: elasticsearch-logging
namespace: elk
labels:
k8s-app: elasticsearch-logging
version: v5.6.2
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
spec:
serviceName: elasticsearch-logging
replicas: 2
selector:
matchLabels:
k8s-app: elasticsearch-logging
version: v5.6.2
template:
metadata:
labels:
k8s-app: elasticsearch-logging
version: v5.6.2
kubernetes.io/cluster-service: "true"
spec:
serviceAccountName: elasticsearch-logging
containers:
- image: gcr.io/google-containers/elasticsearch:v5.6.2
name: elasticsearch-logging
ports:
- containerPort: 9200
name: db
protocol: TCP
- containerPort: 9300
name: transport
protocol: TCP
resources:
limits:
cpu: 0.1
volumeMounts:
- name: elasticsearch-logging
mountPath: /data
env:
- name: "NAMESPACE"
valueFrom:
fieldRef:
fieldPath: metadata.namespace
initContainers:
- image: alpine:3.6
command: ["/sbin/sysctl", "-w", "vm.max_map_count=262144"]
name: elasticsearch-logging-init
securityContext:
privileged: true
volumeClaimTemplates:
- metadata:
name: elasticsearch-logging
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: gp2
resources:
requests:
storage: 5Gi
Scheint es, wie der persistente Datenträger korrekt prallte aber der pod immer in der crash-Schleife und neu starten, jedes mal. Es ist es wegen der Verwendung der initContainer oder etwas falsch mit meinem yaml ?
- können Sie post Ausgabe:
kubectl get pv,pvc -n elk
wie gut? Hast du manuell festlegen keine PVC? Hast du define storage class? - Ich füge einen screenshot
- Könnten Sie kubelet logs?
- Ok, das war über pv und pvc, was über get Kommentare über das manuelle definieren von PVC-und Speicher-Klasse (gp2, vermute ich, kein provisioner da Sie sait dies ist die bare-metal-und nicht-cloud)? Sind diese manifestiert minimal komplette Beispiel-oder haben Sie etwas neben sich zu replizieren Ihr setup? Auch, was ist Ihre k8s-version und welches tool Ihr verwendet, während Sie es erstellen?
- Sorry für die Verspätung, ich habe etwas gefunden und es funktioniert jetzt, es scheinen, wie die elasticsearch konnte nicht kommunizieren mit fluentd und verursachen eine anhaltende Volumen scheitern. Ich juste starten erste infludb und dann elasticsearch.
- Ich benutze die Letzte version von K8S 1.10 und ich im Einsatz Dank kubeadm. Ja ich benutze cloudwatt aber es sind keine PV-und ich glaube nicht, verwenden Sie einen anderen cloud-Anbieter für die dieser. Ich habe nur definieren statische PV-lokal.
- Alles scheint jetzt ok. Es ist Aussehen wie ein Netzwerk-Fehler die Kommunikation zwischen meinem Elch-pods. Ich scale-up der RAM meiner k8s-cluster und jetzt ist es zu finden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen von mehr Ram, scale-up-cluster.