【发布时间】:2018-06-24 16:07:48
【问题描述】:
Minikube 版本 v0.24.1
kubernetes 1.8.0 版
我面临的问题是我在 minikube 中创建了几个statefulsets,每个都有一个 pod。
有时当我启动 minikube 时,我的 pod 最初会启动,然后继续被 kubernetes 重新启动。它们将从创建容器状态到运行,再到终止。
现在,如果 kubernetes 检测到磁盘压力、内存压力或其他类似情况,我已经看到 kubernetes 杀死并重新启动事物,但这里不是这种情况,因为这些标志没有被引发,并且是 pod 事件中的唯一消息日志是“需要杀死 pod”。
最令人困惑的是,这个问题并不总是发生,我不知道如何触发它。我的 minikube 设置将工作一周或更长时间而不会发生这种情况,然后有一天我会启动 minikube 并且我的 statefulsets 的 pod 会继续重新启动。到目前为止,我发现的唯一解决方法是删除我的 minikube 实例并从头开始重新设置,但显然这并不理想。
这里看到的是 statefulsets 之一的示例,其 pod 不断重新启动。在日志中看到 kubernetes 正在删除 pod 并重新启动它。这种情况反复发生。我无法弄清楚为什么它一直这样做,以及为什么它有时只会进入这种状态。
$ kubectl describe statefulsets mongo --namespace=storage
Name: mongo
Namespace: storage
CreationTimestamp: Mon, 08 Jan 2018 16:11:39 -0600
Selector: environment=test,role=mongo
Labels: name=mongo
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"apps/v1beta1","kind":"StatefulSet","metadata":{"annotations":{},"labels":{"name":"mongo"},"name":"mongo","namespace":"storage"},"...
Replicas: 1 desired | 1 total
Pods Status: 1 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: environment=test
role=mongo
Containers:
mongo:
Image: mongo:3.4.10-jessie
Port: 27017/TCP
Command:
mongod
--replSet
rs0
--smallfiles
--noprealloc
Environment: <none>
Mounts:
/data/db from mongo-persistent-storage (rw)
mongo-sidecar:
Image: cvallance/mongo-k8s-sidecar
Port: <none>
Environment:
MONGO_SIDECAR_POD_LABELS: role=mongo,environment=test
KUBERNETES_MONGO_SERVICE_NAME: mongo
Mounts: <none>
Volumes: <none>
Volume Claims:
Name: mongo-persistent-storage
StorageClass:
Labels: <none>
Annotations: volume.alpha.kubernetes.io/storage-class=default
Capacity: 5Gi
Access Modes: [ReadWriteOnce]
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulDelete 23m (x46 over 1h) statefulset delete Pod mongo-0 in StatefulSet mongo successful
Normal SuccessfulCreate 3m (x62 over 1h) statefulset create Pod mongo-0 in StatefulSet mongo successful
【问题讨论】:
标签: kubernetes minikube