我在 Google GKE 上运行一个 k8s 集群,我有一个运行 Redis 和 ElasticSearch 的状态集。因此,Pod 时不时地以完成状态结束,因此它们不再运行,我的服务依赖于它失败。这些 pod 也永远不会自行重启,一个简单kubectl delete pod x
的方法可以解决问题,但我希望我的 pod 能够自行修复。我正在运行可用的最新版本 1.6.4,我不知道为什么它们没有像任何其他常规 pod 一样被拾取和重新启动。也许我错过了一些明显的东西。
编辑:我还注意到吊舱收到终止信号并正常关闭,所以我想知道这是从哪里来的。我没有手动关闭,我对 ElasticSearch 也有同样的体验
这是我的 statefulset 资源声明:
---
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