Kubelet SyncLoop停止(v1.1.1)

时间:2015-12-10 18:01:47

标签: kubernetes

我正在尝试将复制控制器的大小从2调整为0,将分别在node1和node2上调度要删除的两个pod。 node2上的pod被删除没有问题,但node1上的pod仍保持活动状态并根据kubectl get podsdocker ps

运行

症状:

kubectl scale rc my-app-v1 --replicas=0
kubectl get rc my-app-v1
# waited several minutes
kubectl get pods -l app=my-app

输出:

CONTROLLER   CONTAINER(S)   IMAGE(S)           SELECTOR     REPLICAS
my-app-v1    my-app         <docker image>     <selector>   0

NAME                 READY     STATUS    RESTARTS   AGE  NODE
my-app-v1-a12da      1/1       Running   0          5d   node1

两个pod中的一个被正确删除,而另一个仍在运行。我已经尝试了几次,并且一直只遇到node1的问题。

我试图修复它:

我ssh'ed到node1并重新启动kubelet。这删除了挥之不去的pod,但是当我尝试删除该节点上的另一个pod时,我仍然需要重新启动kubelet才能使其工作。

我认为kubelet循环卡在某处,只会在卡住之前经过几次迭代。

我只是打开了详细的日志记录,但我不确定我应该寻找什么。

更新

这也适用于安排到node1的容器。他们的图像从未拉过,也没有开始。

node1过去一直在工作,我刚刚开始遇到这个问题

Kubelet版本

admin@node1 ~ $ /opt/bin/kubelet --version=true
Kubernetes v1.1.1

Kubectl版本

kubectl version
Client Version: version.Info{Major:"1", Minor:"0", GitVersion:"v1.0.6", GitCommit:"388061f00f0d9e4d641f9ed4971c775e1654579d", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.1", GitCommit:"92635e23dfafb2ddc828c8ac6c03c7a7205a84d8", GitTreeState:"clean"}

日志摘录:SyncLoop在哪里?

8154 config.go:382] Receiving a new pod "my-app-v1-a12da_default"
...
8154 server.go:944] GET /stats/default/my-app-v1-a12da/<some uuid>/app-container: (75.513µs) 404 [[Go 1.1 package http]

通常,SyncLoop会选择它并执行必要的docker操作以启动容器。但是在“接收新的pod”之后没有同步循环活动,并且自从我重新启动kubelet以来过去50分钟没有。

1 个答案:

答案 0 :(得分:0)

正如@ yu-ju-hong所指出的,这是由于Kubernetes 1.1.1中处理版本偏斜集群的错误。请将主服务器升级到较新版本,例如Kubernetes 1.1.7,并且理想情况下,请尽快将节点升级到相同版本。