jaskaranhundal/cloud-node-pod-cleanup-tool
GitHub: jaskaranhundal/cloud-node-pod-cleanup-tool
用于自动化执行 OpenStack 节点启停与 Kubernetes 重复 Pod 清理的 DevOps 运维工具,内置安全防护和审计日志机制。
Stars: 0 | Forks: 0
# cloud-node-pod-cleanup-tool
用于受控 OpenStack 节点生命周期操作和 Kubernetes 重复 pod 清理的运维自动化工具,专为生产安全操作而构建。
## 问题
云运维团队通常需要执行受控的节点启动/停止操作,同时需要避免在节点状态转换后可能出现的过期或重复的 Kubernetes pod。在突发事件窗口期,手动清理不仅速度慢,而且风险高。
## 安全上下文
- 强制执行用于启动/停止操作的严格操作流程。
- 通过清理不一致的 pod 状态来提高运维弹性。
- 通过日志文件支持可审计的操作。
- 旨在与安全操作和合规性导向的操作手册保持一致。
- 包含防护机制:重试、状态检查、目标资源验证和错误日志记录。
## 架构/流程

流程摘要:
1. 操作员或调度程序调用脚本并带有 `start` 或 `stop` 参数。
2. 脚本验证云/Kubernetes 连接性。
3. OpenStack 服务器操作在状态轮询下运行。
4. 在配置的 namespace 中运行 Kubernetes 重复 pod 清理。
5. 写入审计日志以实现操作可追溯性。
## 设置
```
git clone git@github.com:jaskaranhundal/cloud-node-pod-cleanup-tool.git
cd cloud-node-pod-cleanup-tool
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
配置:
```
export PARTIAL_SERVER_NAME="node2"
export CLOUD_NAME="otc"
export NAMESPACES="lindera-production,lindera-testing,lindera-development"
```
## 示例输出
```
INFO Successfully connected to OpenStack cloud: otc
INFO Found 1 servers matching 'node2'
INFO Initiated start for server node2
INFO Server reached status ACTIVE
INFO Cleanup complete in namespace lindera-production
INFO Operation completed with audit logs written
```
## 限制
- 需要有效的 OpenStack 凭证和 Kubernetes API 访问权限。
- 除非更新环境变量,否则 namespace 定位是静态的。
- 清理逻辑针对重复的 pod 模式进行了调优,对于复杂的 controller,可能需要进行扩展。
## 路线图
- 添加带有明确变更计划输出的 dry-run 模式。
- 添加结构化 JSON 日志以便 SIEM 摄取。
- 为清理的边缘情况添加单元/集成测试。
- 为操作事件添加可选的 Slack/Teams 通知钩子。
标签:DevSecOps, OpenStack, Python, xlsx, 上游代理, 子域名突变, 无后门, 运维自动化, 逆向工具