Ich bin ein K8s-Cluster auf Google GKE, wo ich eine Statefulsets mit Redis und ElasticSearch laufen. Also hin und wieder landen die Pods in einem vollendeten Zustand und so laufen sie nicht mehr und meine darauf basierenden Dienste scheitern. Diese Pods werden auch nie von selbst neu gestartet, eine einfache kubectl delete pod x
wird das Problem lösen, aber ich möchte meine Pods von selbst heilen. Ich habe die neueste Version 1.6.4, ich habe keine Ahnung, warum sie nicht abgeholt und wie alle anderen regulären Pod neu gestartet werden. Vielleicht vermisse ich etwas Offensichtliches.Kubernetes Statefulset endet im fertigen Zustand
edit: Ich habe auch bemerkt, dass der Pod ein Beendigungssignal bekommt und sich richtig schließt, also frage ich mich, woher das kommt. Ich schließe nicht manuell nach unten und ich erlebe das gleiche mit Elasticsearch
Das ist meine statefulset Ressourcendeklaration:
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: redis
spec:
serviceName: "redis"
replicas: 1
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:3.2-alpine
ports:
- name: redis-server
containerPort: 6379
volumeMounts:
- name: redis-storage
mountPath: /data
volumeClaimTemplates:
- metadata:
name: redis-storage
annotations:
volume.alpha.kubernetes.io/storage-class: anything
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 10Gi
Können Sie das Attribut restartPolicy überprüfen: Immer dieses statefulset? Der Standardwert ist immer, aber stellen Sie sicher, dass ... –
Ja, ich habe überprüft, die Neustart-Richtlinie ist 'Immer' – Niels