kubernetes 仪表板挂在部署资源上

kubernetes dashboard hangs on deploying resources

我们遇到了一个问题,即仪表板的一部分会永远加载并最终超时与端口 9090 通信。

仪表板的 docker 日志或 master 或 worker 的 kubelet 日志中没有问题的迹象。

我不得不使用“--cascade=false”强制删除仪表板的 kubectl,因为删除也会挂起。

这给我们留下了一个过时的副本集,它通常会自行过期,但副本集似乎认为它仍在使用中:

NAMESPACE     NAME                                      DESIRED   CURRENT   READY     AGE
kube-system   rs/dnsmasq-1410718522                     1         1         1         20d
kube-system   rs/dnsmasq-autoscaler-1155841093          1         1         1         20d
kube-system   rs/grafana-1857700562                     1         1         1         17d
kube-system   rs/heapster-3338981674                    1         1         1         17d
kube-system   rs/influxdb-3065341217                    1         1         1         17d
kube-system   rs/kubedns-3830354952                     1         1         1         20d
kube-system   rs/kubedns-autoscaler-54374881            1         1         1         20d
kube-system   rs/kubernetes-dashboard-head-3335363610   1         1         1         1h

仪表板从不部署:

NAMESPACE     NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kube-system   deploy/dnsmasq                1         1         1            1           20d
kube-system   deploy/dnsmasq-autoscaler     1         1         1            1           20d
kube-system   deploy/grafana                1         1         1            1           17d
kube-system   deploy/heapster               1         1         1            1           17d
kube-system   deploy/influxdb               1         1         1            1           17d
kube-system   deploy/kubedns                1         1         1            1           20d
kube-system   deploy/kubedns-autoscaler     1         1         1            1           20d
kube-system   deploy/kubernetes-dashboard   0         0         0            0           1d

将近一天后,仪表板显示没有任何错误,但显然不是:

kubectl logs kubernetes-dashboard-head-3335363610-v37xz --namespace=kube-system
Using HTTP port: 8443
Creating API server client for https://10.233.0.1:443
Successful initial request to the apiserver, version: v1.5.3+coreos.0
Creating in-cluster Heapster client
Using service account token for csrf signing

来自浏览器:

 {
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {},
  "status": "Failure",
  "message": "no endpoints available for service \"kubernetes-dashboard\"",
  "reason": "ServiceUnavailable",
  "code": 503
}

None 的主人或工人在 docker 中有一个仪表板容器。

我们能够通过“--cascade=true”让 nginx 低调运行并重新部署,但 kubernetes-dashboard 和 cockpit 都以相同的方式挂起。

我们在k8s v1.6.3上遇到了类似的问题 升级到v1.6.4版本后,没有遇到问题。