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

昨天 rancher 给我挖了一个大坑

  •  
  •   guoguobaba · 2025 年 4 月 25 日 · 4199 次点击
    这是一个创建于 265 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下班后,给生产系统添加一个节点,就用参照文档,用网站上的脚本给添加了

    curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | INSTALL_RKE2_MIRROR=cn sh -
    

    结果系统崩了,网络全部不能访问了。

    排查发现,他把我的 calico 相关的都删了,准备添加 canal 网络,我擦,我赶紧删了这个节点,修复生产系统,calico-system 的 namespace 也被删了,网络系统全部崩溃,我当时一头猛汗,口中问候了他家各种。

    网路不行,longhorn 也开始卡,然后系统因为 nfs 卡死很多命令也开始。

    先将所有 deploy replicas 设为 0 , 强制 umount nfs ,kubectl 开始能正常操作了。

    在 gpt 的帮助下,尝试了各种方案,后来发现,删除 helmchart ,重启 rke2 让它重建 calico 网络

    kubectl delete helmchart rke2-calico -n kube-system && kubectl delete helmchart rke2-calico-crd -n kube-system && systemctl restart rke2-server
    

    重建过程中也遇到好多坑,折腾到晚上 3:00 才搞定。

    复盘发现是添加的 rke2 版本很新,在/var/lib/rancher/rke2/server/manifests提供了 rke2-canal.yaml,而不是 calico 相关配置,导致 rke2 自动取删除 calico 相关网络,安装 canal 网络。

    真是个教训。

    25 条回复    2025-05-02 23:13:48 +08:00
    ondeay
        1
    ondeay  
       2025 年 4 月 25 日   ❤️ 1
    生产不先测试下就直接上吗
    csys
        2
    csys  
       2025 年 4 月 25 日   ❤️ 4
    rancher 真的很坑 强烈建议不要用

    而且很没有意义,k8s 应该作为最基础最底层的抽象,因为它自己就是自己的本质,所有的工作都是建立在它的抽象上的,应该是所有其他组件都依赖 k8s 提供的抽象,而非反过来建立其它抽象

    我之前也遇到过类似的问题,它整个设计都是和 k8s 非常对抗的
    cheng6563
        3
    cheng6563  
       2025 年 4 月 25 日
    就是版本不一样呗...
    defunct9
        4
    defunct9  
       2025 年 4 月 25 日
    疯了吧,rancher 不是有个自动扩容节点的,干嘛手动搞。
    momocraft
        5
    momocraft  
       2025 年 4 月 25 日
    我现在尽量避免装太侵入式的东西,只用 kubectl 和 k9s
    seers
        6
    seers  
       2025 年 4 月 25 日 via Android
    生产环境只有手敲 kubectl ,搭配个 OpenLens ,其他的一概不用
    guoguobaba
        7
    guoguobaba  
    OP
       2025 年 4 月 25 日
    @defunct9 要装 rke2 版本的 k8s 啊。
    pharsalia
        8
    pharsalia  
       2025 年 4 月 25 日
    你的操作流程很有问题啊
    defunct9
        9
    defunct9  
       2025 年 4 月 25 日
    @guoguobaba 是啊。我们底座是 vmware ,上面有 rancher local 集群,然后又有 k8s 集群,根据需求放缩节点。哪有用命令行的,直接有个扩容节点的按钮。
    codersdp1
        10
    codersdp1  
       2025 年 4 月 25 日
    线上,不指定版本的吗?
    codersdp1
        11
    codersdp1  
       2025 年 4 月 25 日
    k8s 用起来爽,出问题真的难受的一批
    Foxkeh
        12
    Foxkeh  
       2025 年 4 月 25 日
    记得是应该用控制节点管理页面上的一个命令加入新的节点到集群
    wuyadaxian
        13
    wuyadaxian  
       2025 年 4 月 25 日
    一键脚本要小心,不知道.sh 里面用了什么方法。
    而且首先要在测试环境验证下,然后再去生产环境。

    虽然这么说,但是我遇到过,测试环境一键脚本.sh 能跑通,然后换正式环境直接崩了。
    查了下发现,.sh 里面要拉 git 源码编译,正好 git 上合并了个最新的补丁分支进去。
    就在测试环境测试期间----正式环境之间这个时间段发生的。
    所以要走命令行还是要自己敲代码,确认各种版本。
    guoguobaba
        14
    guoguobaba  
    OP
       2025 年 4 月 25 日
    @defunct9 通过 docker 或者云厂商安装的 rancher 可以这样,我是先安装 rke2 ,这个是 k8s 的基础组件,再在上面用 helm 安装 rancher 的,文档在这里,https://docs.rke2.io/zh/install/quickstart
    guanzhangzhang
        15
    guanzhangzhang  
       2025 年 4 月 25 日
    rancher 注重 ui 啥的操作,写脚本的和做 web 功能的不一定是一个较近团队的
    FrankAdler
        16
    FrankAdler  
       2025 年 4 月 25 日 via Android   ❤️ 1
    从来不用一键脚本,只有这个的我会下载回来看看内容自己手动执行,注重效率重复执行的我自己写一键
    eephee
        17
    eephee  
       2025 年 4 月 25 日 via iPhone
    rancher 家的 k3s 用着挺不错,rke2 没怎么用过
    xcai
        18
    xcai  
       2025 年 4 月 25 日
    别说了 上次使用最新版连 RKE2 集群初始化都失败了,弃坑
    sampeng
        19
    sampeng  
       2025 年 4 月 26 日 via iPhone
    生产环境除非我懂 rancher 每一行代码每一个脚本。哪敢用…云端的云服务商的已经足够好用。
    knives
        20
    knives  
       2025 年 4 月 27 日
    楼主的 rancher 版本是不是有点旧了……我这边的版本,添加节点应该是使用当前 rancher 管控面提供的 agent 安装脚本,通过启动一个 agent 服务,自动完成节点服务的安装。

    例如:curl -fL {rancher host}/system-agent-install.sh | sudo sh -s - --label 'cattle.io/os=linux' --worker
    guoguobaba
        21
    guoguobaba  
    OP
       2025 年 4 月 27 日
    @knives 我原来的版本也这样,但是这个版本是 rke2+rancher ,rancher 是使用 Helm 部署到 rke2 k8s 里的,找不到这样的入口。

    ```
    # rke2 -v
    rke2 version v1.32.3+rke2r1 (18005e93ee0b015b78be47cf6515ae6d3a9afd55)
    go version go1.23.6 X:boringcrypto

    # helm list -A |grep rancher
    rancher cattle-system 2 2025-04-25 03:04:31.590632798 +0800 CSTdeployed rancher-2.11.0
    ```
    knives
        22
    knives  
       2025 年 4 月 27 日
    @guoguobaba 好像懂你的环境了。你们的环境,没有把 rancher 这个控制面集群与业务集群分离部署?或者说这次扩展的就是 rancher 这个控制面集群。

    我这边 rancher 这个控制面集群里面纯纯就只有 rancher ,就算控制面挂了业务层也基本没啥影响,不至于太紧张。
    guoguobaba
        23
    guoguobaba  
    OP
       2025 年 4 月 27 日
    @knives 应该是的,只有三个节点,rancher 直接安装在业务集群上面。
    RatioPattern
        24
    RatioPattern  
       2025 年 5 月 1 日
    遇到过类似情况,rancher 感觉就是实验室 KPI 产品
    runzhliu
        25
    runzhliu  
       2025 年 5 月 2 日
    早几年用 Rancher 的时候发现他对 k8s 集群侵入非常强...所以如果没时间深入了解 Rancher 的话不建议用
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   944 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    ♥ Do have faith in what you're doing.