添加MicroK8s工作节点时出现TLS握手超时问题如何解决?
MicroK8s节点加入成功但未出现在节点列表且TLS握手超时的排查方案
检查工作节点MicroK8s组件状态
执行microk8s status,确认kubelet、kube-proxy等核心组件是否正常运行。若有组件未就绪,重启MicroK8s:microk8s stop && microk8s start验证TLS证书完整性
节点join后可能存在证书同步不完整的情况:- 查看工作节点证书目录
/var/snap/microk8s/current/certs/,确认client.crt、client.key、ca.crt存在且文件大小不为0。 - 若证书异常,从主节点手动同步:
- 主节点拷贝证书到工作节点:
sudo scp -r /var/snap/microk8s/current/certs/ pi@<工作节点IP>:/tmp/ - 工作节点替换证书并重启:
sudo cp -r /tmp/certs/* /var/snap/microk8s/current/certs/ microk8s stop && microk8s start
- 主节点拷贝证书到工作节点:
- 查看工作节点证书目录
确认主节点API Server绑定配置
若API Server仅绑定127.0.0.1,会导致TLS握手失败:- 查看主节点kube-apiserver配置:
microk8s kubectl describe pod kube-apiserver-<主节点名称> -n kube-system - 检查
command参数是否包含--advertise-address=10.0.0.101和--bind-address=0.0.0.0,若缺失则编辑配置文件:
添加或修改对应参数后重启主节点MicroK8s:sudo nano /var/snap/microk8s/current/args/kube-apiservermicrok8s stop && microk8s start
- 查看主节点kube-apiserver配置:
排查防火墙和网络策略限制
尽管nc能连通16443端口,但防火墙可能限制了TLS完整会话:- 临时关闭主、工作节点防火墙测试:
sudo ufw disable - 若测试正常,重新配置防火墙规则:
- 主节点开放端口:
sudo ufw allow in on <局域网网卡> from <工作节点IP> to any port 16443,25000,8443 - 工作节点开放端口:
sudo ufw allow in on <局域网网卡> from <主节点IP> to any port 10250,30000:32767
- 主节点开放端口:
- 临时关闭主、工作节点防火墙测试:
检查系统时间同步状态
TLS握手对时间同步要求严格,时间差过大会导致证书验证失败:- 主、工作节点安装并启动ntp服务:
sudo apt install ntp -y sudo systemctl enable --now ntp - 验证时间同步:
确保timedatectl statusSystem clock synchronized显示yes
- 主、工作节点安装并启动ntp服务:
内容的提问来源于stack exchange,提问作者petwri
相关产品推荐
相关产品推荐

