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

远程推送Docker镜像至MicroK8s私有Registry失败排查求助

排查Docker镜像推送至MicroK8s私有Registry失败的问题

我来帮你一步步定位这个「no route to host」的问题,核心大概率是你当前用的172段集群IP在本地PC的网络里不可达,咱们先从几个关键信息入手,同时给你一些临时排查方向:

一、需要你提供的关键信息(附命令)

请执行以下命令并输出结果,方便进一步定位:

  1. 节点IP详情:
    这个命令会列出所有集群节点的内外网IP,Multipass创建的VM通常会有一个和你本地PC同网段的可访问IP,而非集群内部的172段IP:

    kubectl get nodes -o wide
    

    重点关注每个节点的EXTERNAL-IP或INTERNAL-IP字段。

  2. Registry Service配置:
    确认Registry服务的类型、端口绑定是否正常,以及对应的后端Pod是否在线:

    kubectl get services
    

    找到名称类似registry或microk8s-registry的服务,查看它的TYPE是否为NodePort,PORT(S)列的NodePort是否是32000。如果需要更详细信息,可以执行:

    kubectl describe service <registry-service-name>
    
  3. 本地PC网络信息:
    确认你的PC当前使用的网卡IP,判断是否和集群节点在同一网段:

    • Windows用户执行:
      ipconfig
      
    • Linux/macOS用户执行:
      ifconfig  # 或 ip addr
      

    重点看Wi-Fi/以太网的IPv4地址。

  4. 集群CNI网络插件:
    不同的CNI插件可能会影响节点的网络可达性,查看集群使用的CNI:

    microk8s status
    

    在addons部分查找CNI相关插件(如WeaveNet、Calico、Flannel);也可以通过kube-system的Pod确认:

    kubectl get pods -n kube-system
    

二、临时排查建议

  1. 替换为Multipass VM的可访问IP:
    先执行multipass list,这个命令会列出所有Multipass创建的VM,每个VM的IPv4列就是可被本地PC访问的真实IP。用这个IP替换你之前的172段IP,重新尝试构建和推送:

    docker build -t <multipass-vm-ip>:32000/myapp:v1 .
    docker push <multipass-vm-ip>:32000/myapp:v1
    
  2. 检查网络连通性:
    在本地PC执行ping <multipass-vm-ip>,如果不通,说明Multipass的VM网络和本地PC隔离,需要检查Multipass的网络模式(比如是否是NAT模式),或者本地防火墙/杀毒软件是否阻止了连接。

  3. 开放VM端口:
    如果Multipass的VM是Ubuntu系统,检查ufw防火墙是否开放了32000端口:

    sudo ufw allow 32000/tcp
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:48:15