rt ,最近卸载 k8s 某些插件时,发现单纯的 kubectl delete 并不能完整的卸载相关的配置,我相信有时安装其他包 /库也希望彻底卸载相关的内容,所以请问各位大佬有没有相应的工具,最好能支持手动选择,比如手动选择:
- 是否删除相关数据
- 是否删除相关配置(网卡,iptables 等之类的)
- 支持集群节点同步卸载
1
FabricPath Mar 10, 2023 这个不可能做到。
kubelet 写到 /var/lib/kubelet ,除了他自己,没人知道他写了这个目录。 iptables 、ipvs 、ipaddr/iproute 同理 |
2
Syiize Mar 10, 2023 via Android
以我所知道的 deb 包举例,安装和卸载逻辑都是写在包里的安装和卸载脚本里的,所以想卸载的时候留东西很容易,只需要卸载脚本里不删除就可以了,包管理器并不知道软件包到底安装在什么地方。在比较开放的 Linux 世界里题主的要求比较难做到。
|
3
keenkiller Mar 11, 2023 via Android
一般不是 helm 卸载么
|
4
julyclyde Mar 12, 2023
安装的时候用包管理工具,甚至都做不到删干净(运行时产生的那些)
|
5
OldCarMan OP @FabricPath 嗯嗯,确实麻烦,在想等有空,要不要试一下搞个 linux 复杂应用的安装和卸载仓库(提供各种繁杂应用的安装和相应卸载脚本)。
@Syiize 是的,我觉得这样挺好的,另外备份和恢复最好也要有相应的脚本。 @tairan2006 没用过,不过你这个是不是必须使用 helm 安装的库才能用它来卸载 @julyclyde 是的,所以最好对每个库 /组件的路径配置,最好有一个大概的了解,要不然时间久了,有时会遗漏一些东西。 |
6
FabricPath Mar 13, 2023
@OldCarMan 1 这个很理想,维护成本很高的,比如今天 kubeproxy 写了一堆 iptables ,明天又加了一堆 nft tables ,需要不断地跟进。
通常情况下,机器从集群里面摘掉要换业务使用的话,都直接拉去重装,全自动重装,所以成本比卸载软件低很多。 |