You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hyper-V宿主机重启后无法使用microk8s kubectl的解决方法

解决MicroK8s重启后microk8s kubectl无法连接的问题

问题场景

宿主机重启后,执行microk8s kubectl get node -o wide报错:

Unable to connect to the server: dial tcp 172.31.119.125:16443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

已知master节点IP已变更,更新本地~/.kube/config后可通过普通kubectl连接集群,但microk8s kubectl仍无法正常工作,已尝试清理缓存、重启MicroK8s、搜索旧IP文件等操作,问题未解决。

可行解决方法

  • 检查并更新MicroK8s内部kubeconfig
    microk8s kubectl默认使用snap内部的配置文件,而非用户家目录的~/.kube/config。查看该文件内容:

    cat /var/snap/microk8s/current/credentials/client.config
    

    若其中server字段仍指向旧IP,直接修改为新的master节点IP,或者用以下命令覆盖配置:

    microk8s config > /var/snap/microk8s/current/credentials/client.config
    

    修改完成后重启MicroK8s:

    microk8s stop && microk8s start
    
  • 验证apiserver绑定地址
    检查MicroK8s的apiserver启动参数是否绑定了旧IP:

    cat /var/snap/microk8s/current/args/kube-apiserver
    

    查找--advertise-address或--bind-address参数,若设置了旧IP,将其修改为新的master节点IP,然后重启MicroK8s。

  • 检查Hyper-V网络可达性

    1. 在宿主机ping新的master节点IP,确认网络连通性;
    2. 检查虚拟机防火墙规则,确保16443端口(K8s apiserver端口)处于开放状态;
    3. 验证Hyper-V虚拟交换机配置,确保虚拟机获取的IP在正确的网段且无冲突。
  • 重置MicroK8s(谨慎操作)
    若以上方法均无效,可尝试重置MicroK8s集群(会清空所有集群资源,需提前备份重要数据):

    microk8s reset
    

    重置完成后重新初始化集群:

    microk8s start
    

内容的提问来源于stack exchange,提问作者Will Huang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 11:09:26