V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wcyl
V2EX  ›  Kubernetes

node 无法 curl 通 master

  •  
  •   wcyl · 2022-06-20 17:35:35 +08:00 · 1656 次点击
    这是一个创建于 912 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚学 k8s, 准备将之前走 idocker 上部署的服务迁移到 k3s 上, 发现 node 无法连接 master, 找了好几天也不是知道原因, 特来求助

    • master 创建方式
    curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
        sh -s - server \
        --docker \
        --kube-apiserver-arg advertise-address=$master_ip \
        --node-external-ip $master_ip \
        --tls-san=$master_ip
    
    • node 创建方式
    curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
        K3S_TOKEN=$master_k3s_token \
        K3S_URL=https://$master_ip:6443 \
        sh -s - agent \
        --docker \
        --node-external-ip $node_ip
    
    • master 查看 node

    image-20220620172146808.png

    目前问题:

    我在 master 部署了 harbor 但是在 node 上无法访问 提示连接超时

    image-20220620171952682.png

    但是 ping 是可以成功的

    image-20220620172600844.png

    第 1 条附言  ·  2022-06-20 18:15:07 +08:00
    • 2台服务器是通过公网ip来互相访问

    • 他俩之间的任意通信协议和端口都开放了

    • 目前的问题是 worker 机器上通过 bash 执行 curl $master_ip 无法访问,最终超时, 但是ping是可以ping通的, 所以很疑惑

    • master 或者 其他机器 通过 bash 执行 curl $master_ip返回的是 默认的404

    image.png

    11 条回复    2022-06-23 13:26:20 +08:00
    wcyl
        1
    wcyl  
    OP
       2022-06-20 17:43:24 +08:00
    他俩之间的通信问题, 大佬们不用考虑, 我是让他们互相全开放的

    这也是实在找不到原因才这样干的
    zzl22100048
        2
    zzl22100048  
       2022-06-20 18:04:25 +08:00
    这是走公网创建的集群?你说的无法访问是 worker 机器上不能访问,还是 worker 的 pod 内部不能访问 harbor
    wcyl
        3
    wcyl  
    OP
       2022-06-20 18:07:04 +08:00
    @zzl22100048 #2 对的

    是 worker 机器无法 curl 访问 master 上部署的服务, 哪怕是单纯的 curl master ip 也不行

    而在部署 k3s 之前 是返回的默认的 404 的
    wcyl
        4
    wcyl  
    OP
       2022-06-20 18:07:49 +08:00
    @zzl22100048 #2 2 台云服务一台是腾讯云 一台是华为云 所以只能通过公网创建集群
    m4d3bug
        5
    m4d3bug  
       2022-06-20 18:13:38 +08:00 via Android   ❤️ 1
    跨公网的得去改 k3s 的 systemd 给它写个变量吧,可以去看基基杨的博客,他也是玩的跨云 k3s ,不过就多了个 WireGuard
    wcyl
        6
    wcyl  
    OP
       2022-06-20 18:19:32 +08:00
    @m4d3bug #5 确实是有看到很多博客用 WireGuard, 说是加密服务器间的信息, 对我没太必要.

    是米开朗基杨吗? 能指条路路吗 我去看看
    m4d3bug
        7
    m4d3bug  
       2022-06-20 19:19:21 +08:00 via Android
    @wcyl 是他,好像是 fuckcloudnative.io
    m4d3bug
        8
    m4d3bug  
       2022-06-20 19:24:26 +08:00 via Android
    @wcyl 主要是很多 vps 没有把公网 ip 绑到网卡吧,这对 k8s 本身设计的工作场景有区别,WireGuard 弥补了这一区别,倒不是说非得加密
    wcyl
        9
    wcyl  
    OP
       2022-06-23 11:01:55 +08:00
    @zzl22100048 @m4d3bug

    node 之间通信是通过 flannel, 和 wg 关系不大

    [内网不互通的解决办法]( https://icloudnative.io/posts/deploy-k3s-cross-public-cloud/#6-内网不互通的解决办法), 这里修改了所有 node 的 flannel 的公网 ip 并重启了`所有`node 的 k3s 服务, 就可以了

    我之前以为启动 k3s 加了 `node-external-ip`就可以覆写 flannel 的内网 ip (文档上说 flannel 会优先使用 EXTERNAL-IP) 但是不行.

    tips: 覆写 flannel 的 ip 后光重启 master 的 k3s 服务是不够的, 还要重启 worker 的 k3s-agent 服务, 这里停滞了好久
    wcyl
        10
    wcyl  
    OP
       2022-06-23 11:03:21 +08:00
    特别感谢 2 位的帮助 最终解决了这个问题
    m4d3bug
        11
    m4d3bug  
       2022-06-23 13:26:20 +08:00 via Android
    @wcyl good job !
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3060 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 13:55 · PVG 21:55 · LAX 05:55 · JFK 08:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.