最近在使用rancher管理k8s集群的过程中,遇到了rancher server无法和rancher agent因TLS认证错误无法通讯的问题,经查询后,可以通过重新部署agent的方式来解决,在此记录问题的处理过程,希望对各位读者也能有所帮助。
环境说明
四台Linux虚拟机,其中一台以docker形式运行rancher-server,其他三台运行通过rancher-server创建的k8s集群,集群名称为“myk8s”。
以下为环境中相关软件的版本说明。
软件 | 版本说明 |
---|---|
操作系统 | CentOS 7.5 64位 |
rancher 主机的docker | 升级前docker-ce17.03,升级后docker-ce18.06 |
k8s主机的docker | docker-ce17.03 |
rancher | rancher2.1.5 |
故障现象
针对rancher-server所在的服务器的docker-ce版本进行了升级,从17.03升级到了18.06,升级之后rancher-server的容器启动也正常,但是在rancher-server的管理台页面看到所管理的myk8s集群无法连接了,一直处于“Provisioning”状态,下方提示等待agent连接,无法通过rancher server的web页面管理myk8s集群。
查询rancher-server容器的日志,发现有大量的提示TLS握手错误,原因是认证证书有问题,导致rancher-server和rancher-agent进行通讯,因此rancher-server无法通过安装在k8s集群中的rancher-agent对k8s集群进行管理了。
2019/01/23 10:00:49 [INFO] 2019/01/