问题汇总
【一】
问题:
ca证书错误导致无法访问k8s图形化界面
解决:
方法一:
浏览器创建一个新的快捷方式,在属性的目标后面添加 --disable-infobars --ignore-certificate-errors
用快捷方式打开的浏览器进行访问即可
方法二:
随便点击页面空白处输入thisisunsafe
【二】
问题:
初始化后,创建flannel网络,发现kube-flannel和coredns的pod没有起来
解决:
k8s创建flannel网络,需要依赖宿主机的网关,没有
配置网关,会导致部分服务无法启动
集群的话所有的node都要有网关
【三】
问题:
当master节点配置完成,确认master的服务pod已经完全启动,但是当从节点加入主节点后,从节点的pod服务启动错误。
这时查看看kubelet的报错信息,没有拉取到镜像,一般是由从节点没有服务需要镜像或者标签不一致导致的。
解决:
在从节点拉取或者上传镜像,更改标签,使得kubernetes能够正常使用镜像。
【四】
问题:
k8s使用镜像创建pod资源报错

查看日志

没能拉取到镜像
解决:
k8s默认创建pod资源的使用镜像方式,是先从docker仓库拉取镜像,因为docker没有联网也没有本地的docker仓库,所以k8s拉取不到镜像,需要更改k8s拉取镜像策略,imagepullpolicy设置策略
还需要注意的是,如果是k8s集群,创建deployment,pod会被随机调度到某个节点上,所以如果镜像要每个节点都要有,如果只有一个节点有,那其他节点无法拉取到镜像,当查看日志的时候,报错也是等待拉取镜像
【五】
问题:
在部署过程中没有错误的情况下,部署k8s超时。查看kubelet报错node not find
解决:
问题是缺少/etc/resolv.conf文件,如果没有resolve.conf文件可以手动创建,只要确保文件存在即可
也可以直接给网卡文件直接添加dns,就会自动创建resolve.conf文件
注意:在高版本当中的k8s,如果resolve.conf文件当中没有dns,那么在完成flannel网络组件的时候会出现coredns无法启动的后果
【六】
问题:
如果出现类似下面这种报错(每个版本不一样)
大多是因为没有执行环境变量
export KUBECONFIG=/etc/kubernetes/admin.conf
当然如果不是这个问题,请检查是否安装组件,如果也不是请查看是否初始化,如果还不是就看看k8s组件的容器down掉没,如果down掉了那就GG了
【pod错误排查和重置小技巧】
重置:
在k8s中如果是使用控制器等创建的pod,那在k8s集群中控制器会一直维持pod的数量,也就是删除pod,控制器就会重新创建一个新的pod,所以在遇到pod错误,解决错误后pod无法回到正常状态下时,可以删除pod,等待k8s自己创建。
排查:
遇到pod错误,先查看pod的日志,注意命名空间是否需要添加。
kubectl logs [pod名称]
未发现问题可以查看pod详细信息,找到event事件记录,注意命名空间是否需要添加。
kubectl describe pod [pod名称]
还没有找到问题,查看kubelet的状态,一般k8s内部的组件或者pod出现问题,这里会有报错
systemctl status kubelet 或查看kubelet日志
还没有找到问题就原地等死

浙公网安备 33010602011771号