昨天 rancher 给我挖了一个大坑

42 天前
 guoguobaba

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

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

真是个教训。

2910 次点击
所在节点    Kubernetes
25 条回复
ondeay
42 天前
生产不先测试下就直接上吗
csys
42 天前
rancher 真的很坑 强烈建议不要用

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

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

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

例如:curl -fL {rancher host}/system-agent-install.sh | sudo sh -s - --label 'cattle.io/os=linux' --worker

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1128054

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX