当前位置: 首页 > news >正文

CentOS7 + VMware 搭建 K3s 集群遇到的网络问题全记录与解决方案

一、实验环境

  • 虚拟化平台:VMware Workstation
  • 系统版本:CentOS 7 (Core)
  • 网络模式:VMware NAT
  • 集群组成:
    • hadoop100:Master 节点
    • hadoop101:Worker 节点
    • hadoop102:Worker 节点(问题节点)

三台虚拟机均使用静态 IP:

192.168.10.100   master
192.168.10.101   worker1
192.168.10.102   worker2
网关:192.168.10.2

二、问题现象

  1. 在搭建 K3s 时,hadoop102 节点无法解析域名:

    ping rancher-mirror.cn
    ping: rancher-mirror.cn: Name or service not known
    

    但可以 ping 外网 IP:

    ping 8.8.8.8 正常
    
  2. 查看 NetworkManager:

    systemctl status NetworkManager
    Active: inactive (dead)
    

    → 使用的是传统 network 服务。

  3. DNS 配置:

    /etc/sysconfig/network-scripts/ifcfg-ens33
    BOOTPROTO=static
    IPADDR=192.168.10.102
    GATEWAY=192.168.10.2
    DNS1=223.5.5.5
    DNS2=114.114.114.114
    

    即便修改 /etc/resolv.conf,依旧无法解析域名。

  4. dig 命令测试:

    dig rancher-mirror.cn @223.5.5.5
    ;; status: NXDOMAIN
    

    → 域名确实不存在,但后来对任何域名都超时,说明 DNS 链路异常。


三、排查思路

1️⃣ 确认域名状态

rancher-mirror.cn 已经下线(返回 NXDOMAIN)。
安装脚本应改为:

curl -sfL https://get.k3s.io | INSTALL_K3S_MIRROR=cn sh -

或使用阿里云镜像:

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | sh -

2️⃣ 确认网络正常

ping 8.8.8.8 正常 → 网络没问题。

3️⃣ 确认 DNS 配置生效

cat /etc/resolv.conf 能看到正确的 nameserver;
dig aliyun.com @223.5.5.5 超时,说明 DNS 请求根本发不出去。

4️⃣ VMware NAT 网络排查

VMware NAT 模式下,所有虚拟机的 DNS 请求都通过宿主机的
“VMware NAT Service” 转发。
如果该服务异常,虚拟机就能上网但无法解析域名。

验证:

dig aliyun.com @192.168.10.2
;; connection timed out

→ 说明 NAT DNS 转发彻底失效。


四、最终发现问题根因

VMware NAT Service 与 DHCP Service 异常,导致虚拟机无法通过宿主机 NAT
转发 DNS 请求(UDP 53/TCP 53 均超时)。


五、解决步骤

✅ 1. 重启 VMware NAT 与 DHCP 服务

在宿主机上执行(Windows):

net stop "VMware NAT Service"
net start "VMware NAT Service"
net stop "VMware DHCP Service"
net start "VMware DHCP Service"

或在"服务 (services.msc)"中手动重启这两个服务。

重启后立刻测试:

dig aliyun.com @223.5.5.5

输出正常(返回 IP),说明 DNS 功能恢复。


✅ 2. 重启 k3s-agent

在 hadoop102 上:

sudo systemctl restart k3s-agent

✅ 3. 删除卡住的 Pod,让它重新创建

在主节点 hadoop100 上:

sudo k3s kubectl -n kube-system delete pod svclb-traefik-de235f4a-z9hqt

✅ 4. 验证恢复结果

sudo k3s kubectl -n kube-system get pods -o wide | egrep 'flannel|traefik|svclb'

输出:

svclb-traefik-de235f4a-4lfbh  2/2 Running  0  15s  10.42.2.209  hadoop102

→ 表示 DNS、镜像拉取、flannel 网络全部恢复正常。


六、问题扩展与原因分析

原因解释
NAT 服务异常负责转发虚拟机 DNS、HTTP、HTTPS 流量;失效后 UDP 53 不通
仅 102 出问题VMware NAT 为每个 VM 维护独立 NAT 表,有可能某台 VM 缓存异常
静态 IP 配置没走 DHCP,未自动获取 NAT 提供的 DNS 地址
表面能上网但解析失败因为 NAT 只转发部分端口(80/443),53 被阻断

七、替代方案:桥接模式(推荐长期使用)

如果不想依赖 VMware NAT,可以直接把虚拟机改成 桥接 (Bridged) 模式:

节点 IP 网关 DNS


hadoop100 192.168.1.100 192.168.1.1 192.168.1.1
hadoop101 192.168.1.101 192.168.1.1 192.168.1.1
hadoop102 192.168.1.102 192.168.1.1 192.168.1.1

这样虚拟机使用真实局域网 DNS,不再受 VMware NAT 影响。


八、验证结果

最终集群状态:

sudo k3s kubectl get nodes -o wide

输出:

NAME         STATUS   ROLES                  AGE   VERSION           INTERNAL-IP
hadoop100    Ready    control-plane,master   4d    v1.33.5+k3s1      192.168.10.100
hadoop101    Ready    <none>                 3d    v1.33.5+k3s1      192.168.10.101
hadoop102    Ready    <none>                 1d    v1.33.5+k3s1      192.168.10.102

九、总结经验

问题原因解决方案
ping 域名失败但 ping IP 正常DNS 无法解析检查 resolv.conf / NAT 服务
rancher-mirror.cn NXDOMAIN官方域名已失效改用 https://get.k3s.io
svclb-traefik 卡在 ContainerCreatingflannel 未启动 / 镜像拉取失败修复 DNS 或配置国内镜像
dig 超时VMware NAT 转发挂重启 VMware NAT & DHCP 服务
节点无法解析但其他正常 (错误码 102)单节点 NAT 状态损坏重启 NAT 服务或改桥接模式

🔧 十、最佳实践建议

  1. 开启 VMware NAT/DHCP 自动启动

    sc config "VMware NAT Service" start= auto
    sc config "VMware DHCP Service" start= auto
    
  2. 保留国内镜像源/etc/rancher/k3s/registries.yaml 配置:

    mirrors:"docker.io":endpoint:- "https://docker.m.daocloud.io"- "https://dockerpull.com"- "https://registry-1.docker.io"
    
  3. 时间同步

    sudo yum -y install ntpdate
    sudo ntpdate ntp.aliyun.com
    
  4. 查看系统日志

    sudo journalctl -u k3s-agent -n 100
    

✅ 十一、最终结论

问题根因: VMware NAT DNS 转发异常,导致静态 IP
虚拟机无法解析外网域名。
核心解决方案: 重启 VMware NAT/DHCP 服务 或 改用桥接模式。
最终结果: 所有节点恢复正常,K3s 集群完全健康。

http://www.dtcms.com/a/598580.html

相关文章:

  • flowable03任务
  • 手机软件网站京东网页版
  • 国外网站设计大全营销业务应用系统
  • 每日算法刷题Day84:11.11:leetcode 动态规划9道题,用时2h
  • 网站建设开发设计营销公司山东建设网站平台合同范本
  • 网站建设玖金手指谷哥四网站对一个关键词做排名怎么做
  • Windows 系统上安装 Kafka
  • 不成立公司怎么做企业网站php网站开发占比
  • 机加工如何用网站开发客户php实现网站消息推送
  • 百日挑战——单词篇(第十九天)
  • RabbitMQ 小项目之扫盲班
  • 自己如何在网上做网站黄页88网企业名录
  • 信宜做网站动漫制作专业就业方向
  • 国外网站会让国内人做吗ts431p 做网站
  • 酒店网站制作公司企业网站要怎么建设
  • 微信开发网站制作宣传片拍摄报价明细
  • 鹤山市住房和城乡建设局网站深圳做网页
  • LayUI基础入门
  • 56_AI智能体运维部署之实战指南:编写生产级docker-compose部署脚本
  • 公司制作一个网站价格全屋定制一般多少钱
  • 做网站为什么要租服务器广西来宾网站网站建设
  • 制作免费网站微信公众号开发流程图
  • K8S Base: CrashLoopBackOff
  • 《Python 小程序编写系列》(第三部):简易文件批量重命名工具
  • 建设信息门户网站的条件广州设计网站公司
  • 国内做网站的大公司有哪些歌手投票网站怎么做
  • 【系统分析师】2025年下半年真题:案例分析-答案及详解(回忆版)
  • 关系数据库小测练习笔记(1)
  • 门源县电子商务网站建设公司在线短网址生成工具
  • 河南商务学校网站建设污染网站代码