Kubeadm: “ kubeadm重置”间歇性挂起

创建于 2018-02-01  ·  6评论  ·  资料来源: kubernetes/kubeadm

错误报告:

我看到kubeadm版本1.7有时会永远挂在

[reset] Removing kubernetes-managed containers

我能够在5次中重现此问题4次,并且必须按CTRL+C退出。

$ sudo kubeadm reset
sudo: unable to resolve host vhosakot-aci-1-w9c2681796d
[preflight] Running pre-flight checks
[reset] Stopping the kubelet service
[reset] Unmounting mounted directories in "/var/lib/kubelet"
[reset] Removing kubernetes-managed containers
^C  <--- Pressed CTRL+C to exit
$

通过执行sudo systemctl restart docker.service重新启动Docker可解决此问题,并且sudo kubeadm reset可以正常工作而不会出现问题。

如果在删除kubernetes管理的容器时kubeadm reset检查docker的运行状况,并且如果docker处于不正常状态则超时,而不是永远挂在:

[reset] Removing kubernetes-managed containers

kubeadm版本

$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.11", GitCommit:"b13f2fd682d56eab7a6a2b5a1cab1a3d2c8bdd55", GitTreeState:"clean", BuildDate:"2017-11-25T17:51:39Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

环境

  • Kubernetes版本
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.11", GitCommit:"b13f2fd682d56eab7a6a2b5a1cab1a3d2c8bdd55", GitTreeState:"clean", BuildDate:"2017-11-25T18:34:52Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.12", GitCommit:"3bda299a6414b4866f179921610d6738206a18fe", GitTreeState:"clean", BuildDate:"2017-12-29T08:39:49Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
  • 操作系统
    Ubuntu xenial VM:
$ sudo cat /etc/os-release
sudo: unable to resolve host vhosakot-aci-1-m3710102e28
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
  • 内核
$ uname -a
Linux vhosakot-aci-1-m3710102e28 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  • 其他
$ sudo docker info
sudo: unable to resolve host vhosakot-aci-1-w9c2681796d
Containers: 13
 Running: 9
 Paused: 0
 Stopped: 4
Images: 11
Server Version: 1.13.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 67
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version:  (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: N/A (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: N/A (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-104-generic
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 3
Total Memory: 15.67 GiB
Name: vhosakot-aci-1-w9c2681796d
ID: X3ES:DTHR:RVNF:6OCE:2UXA:5VKA:LVVS:2G4K:KYHN:EBQZ:QH4C:SIQB
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

$ sudo docker version
sudo: unable to resolve host vhosakot-aci-1-w9c2681796d
Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.6.2
 Git commit:   092cba3
 Built:        Thu Nov  2 20:40:23 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.13.1
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.6.2
 Git commit:   092cba3
 Built:        Thu Nov  2 20:40:23 2017
 OS/Arch:      linux/amd64
 Experimental: false

发生了什么?

kubeadm reset永远挂起。

您预期会发生什么?

如果docker处于不健康状态,则kubeadm reset超时。

如何重现(尽可能少且精确)?

请参阅上面的步骤。

help wanted kinbug kindocumentation prioritimportant-soon

最有用的评论

@cwedgwood我没有任何挂载点,并且仍然看到此问题。

通过执行sudo systemctl restart docker.service重新启动Docker可解决此问题,并且sudo kubeadm reset可以正常工作而不会出现问题。

所有6条评论

我也看到了这一点:

sudo kubeadm重置[飞行前]运行飞行前检查[重置]停止kubelet服务[重置]卸载“ / var / lib / kubelet”中的已挂载目录[重置]删除kubernetes管理的容器

看起来正在发生的事情是docker kill / rm由于楔入的nfs安装而感到不安

@vhosakot也许对您来说也像那样吗? 那是卡住的挂载点?

@cwedgwood我没有任何挂载点,并且仍然看到此问题。

通过执行sudo systemctl restart docker.service重新启动Docker可解决此问题,并且sudo kubeadm reset可以正常工作而不会出现问题。

/ assign @detiber-这是一个文档更新。

/分配@chuckha

我可以接受这个。

https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/中添加信息
除非有更好的位置

^ PR发送到/website 。 我们没有足够的调试信息,但是我在文档中添加了@vhosakot提供的修复程序

此页面是否有帮助?
0 / 5 - 0 等级