Bulk Action
简介
顾名思义,Bulk Action
是一个用于进行批量操作的插件。
它使用 kubectl bulk <resourceType> [<parameters>] [action] [<fields>]
形式的命令,对指定资源的字段进行批量操作。
这个插件是使用 Shell 脚本通过大量的
grep
、sed
完成操作的,对完整资源并无认识,因此操作还是具有一定的危险性的,请慎重使用写操作。
基本用法
get
这个命令用于读取特定对象的指定字段值。
例如获取所有 Deployment 中的特定字段的内容:
$ kubectl bulk-action deploy get image
image fields are getting
image: dustise/flaskapp
image: dustise/flaskapp
- image: dustise/sleep
- image: dustise/sleep
上面的输出内容中,也能很清晰的分辨出 sh
的操作痕迹。推测 labels
这种字段就无法获取了:
$ kubectl bulk-action deploy get labels
labels fields are getting
labels:
labels:
...
list
这个命令是 bulk-action
的缺省操作,用 yaml 的形式列出所有指定类型的资源。
create
根据目前的资源,经过一定的替换之后生成新资源。
例如复制一个 Deployment
:
$ kubectl bulk-action deploy create name sleep-v2 sleep-v3
creating new resource with changing name: sleep-v2 to name: sleep-v3 for all deploy
deployment.extensions/sleep-v3 created
Error from server (AlreadyExists): deployments.extensions "flaskapp-v1" already exists
Error from server (AlreadyExists): deployments.extensions "flaskapp-v2" already exists
Error from server (AlreadyExists): deployments.extensions "sleep-v1" already exists
前面说过,这个工具的操作是通过 grep
sed
等完成的,因此这里的情况就比较有趣:sleep-v2
被替换生成新的 Deployment
,其它 Deployment
不包含这段文本,因此无效。
delete
选择指定资源执行删除操作,例如删除所有的 Service
。
这个操作相当危险。 这里有个 bug,可以
mv ~/.krew/bin/kubectl-bulk_action ~/.krew/bin/kubectl-bulk
来纠正。
update
和 Create
类似,不过这里调用的是 kubectl replace
结论
古怪的功能,危险的操作。非常不建议采用。
参考链接
- 项目地址:
https://github.com/emreodabas/kubectl-plugins