SS Sub
免费、付费机场节点和订阅

昨天 rancher 给我挖了一个大坑

V2EX = way to explore

V2EX 是一个关于分享和探索的地方

现在注册

已注册用户请  登录

guoguobaba

V2EX  ›  Kubernetes

昨天 rancher 给我挖了一个大坑

  •  
  •   guoguobaba · 1 天前 · 1717 次点击

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

    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 网络。

    真是个教训。

    19 条回复    2025-04-26 00:19:32 +08:00

    ondeay
        1

    ondeay  

       1 天前   ❤️ 1

    生产不先测试下就直接上吗
    csys
        2

    csys  

       1 天前   ❤️ 2

    rancher 真的很坑 强烈建议不要用

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

    我之前也遇到过类似的问题,它整个设计都是和 k8s 非常对抗的

    cheng6563
        3

    cheng6563  

       1 天前

    就是版本不一样呗…
    defunct9
        4

    defunct9  

       1 天前

    疯了吧,rancher 不是有个自动扩容节点的,干嘛手动搞。
    momocraft
        5

    momocraft  

       1 天前

    我现在尽量避免装太侵入式的东西,只用 kubectl 和 k9s
    seers
        6

    seers  

       1 天前 via Android

    生产环境只有手敲 kubectl ,搭配个 OpenLens ,其他的一概不用
    guoguobaba
        7

    guoguobaba  

    OP

       1 天前

    @defunct9 要装 rke2 版本的 k8s 啊。
    pharsalia
        8

    pharsalia  

       1 天前

    你的操作流程很有问题啊
    defunct9
        9

    defunct9  

       1 天前

    @guoguobaba 是啊。我们底座是 vmware ,上面有 rancher local 集群,然后又有 k8s 集群,根据需求放缩节点。哪有用命令行的,直接有个扩容节点的按钮。
    codersdp1
        10

    codersdp1  

       1 天前

    线上,不指定版本的吗?
    codersdp1
        11

    codersdp1  

       1 天前

    k8s 用起来爽,出问题真的难受的一批
    Foxkeh
        12

    Foxkeh  

       1 天前

    记得是应该用控制节点管理页面上的一个命令加入新的节点到集群
    wuyadaxian
        13

    wuyadaxian  

       1 天前

    一键脚本要小心,不知道.sh 里面用了什么方法。
    而且首先要在测试环境验证下,然后再去生产环境。

    虽然这么说,但是我遇到过,测试环境一键脚本.sh 能跑通,然后换正式环境直接崩了。
    查了下发现,.sh 里面要拉 git 源码编译,正好 git 上合并了个最新的补丁分支进去。
    就在测试环境测试期间—-正式环境之间这个时间段发生的。
    所以要走命令行还是要自己敲代码,确认各种版本。

    guoguobaba
        14

    guoguobaba  

    OP

       1 天前

    @defunct9 通过 docker 或者云厂商安装的 rancher 可以这样,我是先安装 rke2 ,这个是 k8s 的基础组件,再在上面用 helm 安装 rancher 的,文档在这里,https://docs.rke2.io/zh/install/quickstart
    guanzhangzhang
        15

    guanzhangzhang  

       1 天前

    rancher 注重 ui 啥的操作,写脚本的和做 web 功能的不一定是一个较近团队的
    FrankAdler
        16

    FrankAdler  

       1 天前 via Android   ❤️ 1

    从来不用一键脚本,只有这个的我会下载回来看看内容自己手动执行,注重效率重复执行的我自己写一键
    eephee
        17

    eephee  

       1 天前 via iPhone

    rancher 家的 k3s 用着挺不错,rke2 没怎么用过
    xcai
        18

    xcai  

       1 天前

    别说了 上次使用最新版连 RKE2 集群初始化都失败了,弃坑
    sampeng
        19

    sampeng  

       1 天前 via iPhone

    生产环境除非我懂 rancher 每一行代码每一个脚本。哪敢用…云端的云服务商的已经足够好用。

    未经允许不得转载:机场推荐官 » 昨天 rancher 给我挖了一个大坑