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 状态来提高运维弹性。 - 通过日志文件支持可审计的操作。 - 旨在与安全操作和合规性导向的操作手册保持一致。 - 包含防护机制:重试、状态检查、目标资源验证和错误日志记录。 ## 架构/流程 ![架构和执行流程](https://raw.githubusercontent.com/jaskaranhundal/cloud-node-pod-cleanup-tool/main/docs/architecture-flow.svg) 流程摘要: 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, 上游代理, 子域名突变, 无后门, 运维自动化, 逆向工具