johnnymarquezv/kubernetes-observatory-platform
GitHub: johnnymarquezv/kubernetes-observatory-platform
Kubernetes观测平台,提供遥测数据采集、处理、存储、监控和事件响应的自动化解决方案。
Stars: 0 | Forks: 0
# Kubernetes 观测平台
一种生产级 DevOps/SRE 项目组合,模拟观测站遥测数据的采集、处理、存储、监控和事件响应。
## 架构
- 使用 Terraform 部署的 AWS 基础设施。
- 在 EKS 或自管理的 EC2 集群上运行的 Kubernetes 平台。
- 自管理 Kubernetes 节点的 Ansible 引导。
- 将 Python 遥测服务打包为容器。
- PostgreSQL 提供集群内关系型数据存储,具有 PVC 支持的持久性。
- Redis Streams 将遥测生产者连接到工作节点,以 PVC 支持的流持久性进行集群内处理。
- Ingress 和 Gateway API 路由用于外部 API 访问。
- RBAC、NetworkPolicies、Istio 服务网格 mTLS、HPA/VPA/Karpenter 自动扩展、中断预算、资源配额、限制范围和策略代码护栏。
- 使用 Argo CD 环境覆盖进行 GitOps 交付。
- EBS CSI、EFS CSI 和 Rook-Ceph CSI 存储类为 PostgreSQL、Redis 和应用程序持久数据提供存储。
- Karpenter 节点自动扩展用于 EKS 容量管理。
- Prometheus、Grafana、Loki 和 Alertmanager 用于可观测性。
- GitHub Actions 用于测试、镜像构建、Terraform 验证、Helm 检查、并行 Helm/Kustomize 部署、扫描和 SBOM 生成。
## 服务
- `telemetry-api`:FastAPI 服务,公开健康、遥测和 Prometheus 指标端点。
- `telemetry-producer`:生成望远镜、相机、天气和基础设施遥测事件。
- `telemetry-worker`:在存储或下游处理之前丰富遥测事件。
## 仓库布局
```
kubernetes-observatory-platform/
├── .github/workflows/
├── ansible/
├── backup/
├── ceph/
├── docs/
├── gitops/
├── helm/
├── k6/
├── kustomize/
├── observability/
├── policy/
├── src/observatory_platform/
├── terraform/
└── tests/
```
## 本地开发
```
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest
uvicorn observatory_platform.api:app --reload
```
## 平台里程碑
1. 构建并测试 Python 遥测服务。
2. 将服务打包为容器。
3. 使用 Helm 或 Kustomize 将应用程序部署到 Kubernetes。
4. 使用 Terraform 部署 AWS 和 Kubernetes 基础设施。
5. 在演示主机自动化时,使用 Ansible 引导自管理的 EC2 集群。
6. 部署 Prometheus、Grafana、Loki 和 Alertmanager。
7. 部署 Rook-Ceph 并将其与遥测存储连接。
8. 添加 SLO、负载测试、备份演练、事件模拟和事后分析。
## 技能覆盖
- Kubernetes 管理和作业设计。
- 基于 Terraform 的 AWS 基础设施自动化。
- 使用 Ansible 的 Linux 配置管理。
- GitHub Actions CI/CD。
- Python 服务开发和测试。
- Prometheus 指标、Grafana 仪表板、Loki 日志和警报。
- Ceph 支持的持久存储。
- GitOps、服务网格流量安全、策略代码、镜像扫描和 SBOM 生成。
- 事件响应和可靠性文档。
## CI 和 GitOps 部署
`ci` GitHub Actions 工作流程在 `main` 上测试、构建、烟雾测试、扫描并推送不可变 GHCR 图像标签。Argo CD 是部署的真相来源,并通过 Helm 和 Kustomize 并行同步提交的图像标签。这两个部署路径共享一个集群,但使用不同的命名空间,因此不需要额外的集群进行并行验证。
有关晋升模型和手动直接部署示例工作流程,请参阅 `docs/deployment-pipeline.md`。有关数据库部署,请参阅 `docs/postgresql.md`;有关 Istio 安装、mTLS 策略和验证,请参阅 `docs/service-mesh.md`;有关 HPA、VPA 和 Karpenter,请参阅 `docs/autoscaling.md`。
标签:Alertmanager, Ansible, Argo CD, Auto-scaling, Autoscaling, AV绕过, AWS, Ceph, Cloud Native, Containerization, Container Orchestration, Continuous Deployment, Continuous Integration, Disruption Budgets, DPI, ECS, FastAPI, GitHub Actions, GitOps, Grafana, Helm, Incident Management, Incident Response, Infrastructure as Code, Ingestion, Istio, Kustomize, Limit Ranges, Loki, Monitoring, Network Policies, Observability, Policy-as-Code, PostgreSQL, Processing, Python, RBAC, Redis, Resource Quotas, SBOM, Service Mesh, SRE, Storage, Telemetry, Telemetry Producer, Telemetry Worker, Terraform, 偏差过滤, 子域名突变, 搜索引擎查询, 无后门, 测试用例, 漏洞利用检测, 硬件无关, 系统提示词, 自动笔记, 自定义请求头, 逆向工具, 隐蔽技术