起因
有客户问,原生k8s里面,如何给k8s集群里面的 namespace 命名空间 改名,找到一个 https://github.com/alitoufighi 写的 克隆脚本,复制了所有的资源,也就实现了改名操作。
必备条件
脚本的必备条件是yq,安装地址 https://github.com/mikefarah/yq
建议装v3版yq,v4版yq改动很大,不然你得改脚本了。
v4版本 直接会报错 "Error: unknown command "w" for "yq""
yq版本差异
参考这里 v3和v4差别
https://mikefarah.gitbook.io/yq/v/v4.x/upgrading-from-v3
摘抄一个 w 参数的区别
Updating / writing documents
v3:
yq w sample.yaml 'a.b.c' fred
v4:
yq eval '.a.b.c = "fred"' sample.yaml
用法
用法脚本帮助里面也有,类似如下即可开始克隆
./clone-ns.sh -n newname -t oldname
可能问题
使用了2次,能很好的复制,但是似乎历史残留也出现了,应该是环境本身有问题吧,以后有空再看看。
文章评论