[标签]: kubernetes集群管理 k8s批量操作 k8s设定deploy/sts的预期pod数为0 k8s服务伪下线
问题详情的描述或方案目标的预期:
收到指示需要将kubernetes(k8s)集群所有的业务pod停止,相当于停掉业务的意思。但是一周后需要恢复。(其实需求本质是因为集群和DB以及中间件隔离,导致错误日志疯狂输出磁盘告警;真正的业务隔离已经通过域名入口隔离。)经过考虑可以把pod都下掉,保留deploy/sts,隔离期过后直接恢复预期pod数量即可。
【解决方案】
01、 查看业务空间所有的deploy并备份 kubectl -n myprodxxx get deploy >prod_myprodxxx_deploy_20220719bak
02、 查看业务空间所有的statefulset(sts)并备份 kubectl -n myprodxxx get sts >prod_myprodxxx_sts_20220719bak
03、 查看业务空间所有的pods并备份 kubectl -n myprodxxx get po >prod_myprodxxx_pods_20220719bak
04、 批量操作设定所有deploy资源对象的预期pod数为0 for i in `kubectl -n myprodxxx get deploy|awk '{print$1}'|grep -v NAME`;do kubectl -n myprodxxx scale --replicas=0 deploy $i;done
04、 批量操作设定所有statefulset资源对象的预期pod数为0 for i in `kubectl -n myprodxxx get sts|awk '{print$1}'|grep -v NAME`;do kubectl -n myprodxxx scale --replicas=0 sts $i;done
总结: 熟悉kubernetes操作命令、批量思维做事。