Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes在Minikube不断重启Statefolset的吊舱,并使用;“需要杀死吊舱”;_Kubernetes_Minikube - Fatal编程技术网

Kubernetes在Minikube不断重启Statefolset的吊舱,并使用;“需要杀死吊舱”;

Kubernetes在Minikube不断重启Statefolset的吊舱,并使用;“需要杀死吊舱”;,kubernetes,minikube,Kubernetes,Minikube,Minikube版本v0.24.1 kubernetes 1.8.0版 我面临的问题是,我在minikube中创建了几个statefulset,每个都有一个pod 有时,当我启动minikube时,我的吊舱最初会启动,然后继续由kubernetes重新启动。它们将一次又一次地从创建容器状态到运行状态,再到终止状态 我以前见过kubernetes在检测到磁盘压力、内存压力或其他类似情况时杀死并重新启动东西,但这里不是这种情况,因为这些标志没有被触发,pod的事件日志中唯一的消息是“需要杀死pod”

Minikube版本v0.24.1

kubernetes 1.8.0版

我面临的问题是,我在minikube中创建了几个
statefulset
,每个都有一个pod

有时,当我启动minikube时,我的吊舱最初会启动,然后继续由kubernetes重新启动。它们将一次又一次地从创建容器状态到运行状态,再到终止状态

我以前见过kubernetes在检测到磁盘压力、内存压力或其他类似情况时杀死并重新启动东西,但这里不是这种情况,因为这些标志没有被触发,pod的事件日志中唯一的消息是“需要杀死pod”

最让人困惑的是,这个问题并不是一直都在发生,我不知道如何触发它。我的minikube设置将运行一周或更长时间,但不会发生这种情况,然后有一天我将启动minikube,并继续重新启动我的
状态集的播客。到目前为止,我找到的唯一解决办法是删除我的minikube实例,然后从头开始重新设置,但显然这并不理想

这里看到的是一个
statefulset
的示例,它的pod一直在重新启动。从日志中可以看出,库伯内特斯正在删除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
$kubectl descripe statefulsets mongo--namespace=storage
姓名:mongo
名称空间:存储
CreationTimestamp:2018年1月8日星期一16:11:39-0600
选择器:环境=测试,角色=mongo
标签:name=mongo
注解:kubectl.kubernetes.io/last applicated configuration={“apiVersion”:“apps/v1beta1”,“种类”:“StatefulSet”,“元数据”:{“注解”:{},“标签”:{“名称”:“mongo”},“名称”:“mongo”,“命名空间”:“存储”}。。。
副本:1个所需副本|共1个
Pods状态:1正在运行/0正在等待/0成功/0失败
Pod模板:
标签:环境=测试
角色=mongo
容器:
蒙戈:
图片:mongo:3.4.10-jessie
端口:27017/TCP
命令:
蒙哥德
--答复
rs0
--小文件
--noprealloc
环境:
挂载:
/来自mongo持久存储(rw)的数据/db
mongo侧车:
图片:cvallance/mongo-k8s-sidecar
端口:
环境:
MONGO_SIDECAR_POD_标签:角色=MONGO,环境=测试
KUBERNETES_MONGO_服务名称:MONGO
挂载:
卷数:
批量索赔:
名称:mongo持久存储
StorageClass:
标签:
注释:volume.alpha.kubernetes.io/storage class=default
容量:5Gi
访问模式:[ReadWriteOnce]
活动:
从消息中键入原因年龄
----    ------            ----               ----         -------
正常成功删除23m(x46超过1h)状态成功删除Pod mongo-0在状态成功删除Pod mongo
正常成功创建3m(x62超过1h)状态成功创建Pod mongo-0在状态成功创建Pod mongo-0

进一步挖掘之后,似乎出现了一个可能影响statefulset的bug,该bug为同一statefulset创建了多个控制器:

此问题似乎已得到修复,修复程序似乎已被后移植到kubernetes的1.8版,并包含在1.9版中,但minikube还没有固定版本。如果系统进入此状态,解决方法是列出控制器修订,如下所示:

$ kubectl get controllerrevisions --namespace=storage
NAME                  CONTROLLER              REVISION   AGE
mongo-68bd5cbcc6      StatefulSet/mongo       1          19h
mongo-68bd5cbcc7      StatefulSet/mongo       1          7d
并删除每个状态集的重复控制器

$ kubectl delete controllerrevisions mongo-68bd5cbcc6  --namespace=storage
或者简单地使用kubernetes 1.9版或更高版本,其中包含此错误修复