kubernetes安装过程中遇到问题及解决
系列目录
根据机器环境的不同,有的可能一次就安装成功,有的则可能遇到各种各样的坑需要排查.建议不熟悉linux的用户使用全新的环境来安装kubernetes.以下记录本人在安装过程中遇到的问题及解决方案.
缺少docker
由于是按照步骤安装的,刚开始装前几台机器的时候都看的非常认真,到了后面就越来越毛躁了,装节点加入集群的时候提示需要docker,这时候在节点上执行docker
命令时发现docker不存在,这时候才发现docker没有成功安装.
安装docker时报container-selinux >= 2.9错误
由于测试环境的机器是不同批准到来的,第一批安装非常顺序,第二批是直接放置在办公室的PC机,也非常不顺序,安装过程遇到各种各样麻烦.
上面说过,加入集群时发现docker没有安装成功,安装docker时出现了以下错误
Error: Package: docker-ce-18.03.1.ce-1.el7.centos.x86_64 (docker-ce-edge)
Requires: container-selinux >= 2.9
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
这个报错是container-selinux版本低或者是没安装的原因
yum 安装container-selinux 一般的yum源又找不到这个包
需要安装epel源 才能yum安装container-selinux
然后在安装docker-ce就可以了。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release #阿里云上的epel源
yum makecache
然后yum install container-selinux
加入集群后节点状态一直是NotReady
出现这个错误可以在节点机器上执行journalctl -f -u kubelet
查看kubelet的输出日志信息.
发现以下错误
Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
出现这个错误提示信息已经很明显,网络插件没有准备好.我们可以执行命令docker images|grep flannel
来查看flannel镜像是否已经成功拉取下来.经过排查,flannel镜像拉取的有点慢,稍等一会以后就ok了.
如果你等待了很长时间仍然没有拉下来flannel镜像,可以使用
docker save
把主节点上的flannel镜像保存为压缩文件,然后再在当前节点上执行docker load
来加载,具体操作其它章节有介绍,大家可以查找或者查看官方文档.还有一种办法就是使用上一节介绍到的如何拉取gcr.io或者quay.io上镜像的方法来手动把镜像拉取过来.
节点加入集群时报错
节点加入集群时,可能会报各种各样的错误,有些容易解决,有些可能一时无法找到好的解决办法.这时候可以尝试使用kubeadm reset
命令来重置一下,然后再重新加入.