From f1e07c79f4c07df2aee3f5d24b4ef3ad930b0035 Mon Sep 17 00:00:00 2001 From: hezhaohui Date: Fri, 10 Jul 2026 11:38:36 +0800 Subject: [PATCH] vault backup: 2026-07-10 11:38:36 --- xinfra/requirements.md | 161 ++++++++++++++++++++++++++++++----------- 1 file changed, 119 insertions(+), 42 deletions(-) diff --git a/xinfra/requirements.md b/xinfra/requirements.md index fffeb37..a21be29 100644 --- a/xinfra/requirements.md +++ b/xinfra/requirements.md @@ -40,20 +40,22 @@ XINFRA 是七牛云的统一基础设施平台,以**七机房容器资源池 ### 通用术语 -| 概念 | 定义 | -|------|------| -| APIKey | Wayne 平台对外提供的 API 认证密钥,用于 CI/CD 流水线等自动化场景的身份认证,遵循最小权限原则 | -| RBAC | 基于角色的访问控制(Role-Based Access Control),通过角色分配权限,用户与角色关联实现权限隔离 | -| RKE2 | Rancher 发行的轻量级 Kubernetes 发行版,专为生产环境设计,支持离线安装和安全加固 | -| CI/CD | 持续集成/持续部署,自动化代码构建、测试和部署的流水线 | -| WAF | Web 应用防火墙(Web Application Firewall),防护 SQL 注入、XSS、CSRF 等常见 Web 攻击 | -| SLA | 服务等级协议(Service Level Agreement),定义服务可用性的承诺指标,如 99.9% 可用率 | -| CNI | 容器网络接口(Container Network Interface),K8s 中负责 Pod 网络通信的插件规范 | -| IaC | 基础设施即代码(Infrastructure as Code),通过 Ansible Playbook 等工具实现基础设施自动化管理 | -| Console + Sidecar | CloudDM 的集群部署模式,Console 负责管理界面,Sidecar 负责实际 SQL 执行和代理 | -| Air-gap | 离线部署模式,适配无外网访问的内网环境,所有依赖包需预先下载 | -| Harbor | 企业级容器镜像仓库,用于存储和分发 Docker/OCI 镜像 | -| containerd | K8s 默认的容器运行时,负责容器生命周期管理,取代 Docker | +| 概念 | 定义 | +| ----------------- | -------------------------------------------------------------------------------------- | +| APIKey | Wayne 平台对外提供的 API 认证密钥,用于 CI/CD 流水线等自动化场景的身份认证,遵循最小权限原则 | +| RBAC | 基于角色的访问控制(Role-Based Access Control),通过角色分配权限,用户与角色关联实现权限隔离 | +| RKE2 | Rancher 发行的轻量级 Kubernetes 发行版,专为生产环境设计,支持离线安装和安全加固 | +| CI/CD | 持续集成/持续部署,自动化代码构建、测试和部署的流水线 | +| WAF | Web 应用防火墙(Web Application Firewall),防护 SQL 注入、XSS、CSRF 等常见 Web 攻击 | +| SLA | 服务等级协议(Service Level Agreement),定义服务可用性的承诺指标,如 99.9% 可用率 | +| CNI | 容器网络接口(Container Network Interface),K8s 中负责 Pod 网络通信的插件规范 | +| IaC | 基础设施即代码(Infrastructure as Code),通过 Ansible Playbook 等工具实现基础设施自动化管理 | +| 运维分层 | 故障按层级自愈:子系统处理应用与中间件故障,主系统管理员通过 Ansible / SSH 兜底基础设施层故障,跨层操作需管理员权限 | +| Console + Sidecar | CloudDM 的集群部署模式,Console 负责管理界面,Sidecar 负责实际 SQL 执行和代理 | +| Air-gap | 离线部署模式,适配无外网访问的内网环境,所有依赖包需预先下载 | +| Harbor | 企业级容器镜像仓库,用于存储和分发 Docker/OCI 镜像 | +| 跨系统认证 | 主系统统一 LDAP 认证,一个主系统用户对应各子系统中的多个用户(1:N 映射)。主系统管身份(Authentication),子系统管授权(Authorization) | +| containerd | K8s 默认的容器运行时(CRI 标准),负责容器生命周期管理,取代 Docker | ## 平台架构总览 @@ -63,30 +65,40 @@ graph TB Dev[开发人员] DBA[DBA] SRE[SRE / 运维] + Sec[安全团队] end subgraph 平台层["平台层(主系统 + 子系统)"] subgraph 主系统["主系统(XINFRA 统管层)"] + Portal[统一门户
LDAP 认证入口] + AuditAgg[审计聚合中心] CICD[CI/CD 流水线] CostBoard[多云成本看板] + OpsTerminal[运维终端
Ansible / SSH
「仅管理员」] end - subgraph 子系统["子系统(独立部署平台)"] + subgraph 子系统["子系统(独立部署,各自授权)"] Wayne[Wayne 多集群管理] - CloudDM[CloudDM SQL 审核] + CloudDM[CloudDM SQL 审核
多实例 HA] CacheCloud[CacheCloud Redis 管理] end end subgraph 工具层 - Ansible[Ansible Playbook
「工具」] + Ansible[Ansible Playbook
「基础设施初始化」] end subgraph 基础设施层 + Ingress["Ingress / WAF
「安全防护入口」"] RKE2[RKE2 集群 x7 机房] - WAF[WAF 安全态势] Network[大内网互联] end + subgraph 监控告警["监控告警(外部依赖)"] + Prometheus[(Prometheus
Metrics 采集)] + Grafana[Grafana 可视化] + Alert[告警路由
邮件 / 企业 IM] + end + subgraph 数据层 MySQL[(MySQL)] PG[(PostgreSQL)] @@ -97,39 +109,62 @@ graph TB Harbor[(Harbor 镜像仓库)] end - Dev --> Wayne - Dev --> CICD - Dev --> CloudDM - DBA --> CloudDM - SRE --> Ansible - SRE --> CacheCloud + Dev -->|1: N 用户映射| Portal + DBA -->|1: N 用户映射| Portal + SRE -->|1: N 用户映射| Portal + Sec -->|1: N 用户映射| Portal + Portal --> Wayne + Portal --> CICD + Portal --> CloudDM + Portal --> CacheCloud + Portal --> CostBoard + SRE --> OpsTerminal + Wayne -.->|审计上报| AuditAgg + CloudDM -.->|审计上报| AuditAgg + CacheCloud -.->|审计上报| AuditAgg - Wayne --> RKE2 - CloudDM --> MySQL - CloudDM --> PG - CloudDM --> Oracle - CloudDM --> CH - CloudDM --> MongoDB + Wayne -->|Client-Go| RKE2 + CloudDM -->|SQL 审核接入
MySQL / PG / Oracle / CH / MongoDB| MySQL CacheCloud --> Redis CICD --> Harbor - CICD --> Wayne + CICD -->|APIKey 触发部署| Wayne Ansible --> RKE2 Ansible --> MySQL Ansible --> Redis + OpsTerminal -->|兜底操作| RKE2 + OpsTerminal -->|兜底操作| Network + + Ingress --> RKE2 RKE2 --> Network + Wayne -.->|Metrics| Prometheus + CloudDM -.->|Metrics| Prometheus + CacheCloud -.->|Metrics| Prometheus + Prometheus --> Grafana + Prometheus --> Alert + Sec -->|安全事件查询| Ingress + + CostBoard -.->|云账单 API| CH + CostBoard -.->|K8s / 节点指标| Prometheus + classDef subsystem fill:#e8f0fe,stroke:#4285f4,stroke-width:2px classDef mainsys fill:#f3e8fd,stroke:#9333ea,stroke-width:2px classDef tool fill:#fef3c7,stroke:#d97706,stroke-width:2px + classDef monitor fill:#fff7ed,stroke:#ea580c,stroke-width:2px + classDef infra fill:#ecfdf5,stroke:#059669,stroke-width:2px class Wayne,CloudDM,CacheCloud subsystem - class CICD,CostBoard mainsys + class Portal,AuditAgg,CICD,CostBoard,OpsTerminal mainsys class Ansible tool + class Prometheus,Grafana,Alert monitor + class Ingress,RKE2,Network infra ``` > [!tip] 图例说明 -> - **紫色节点** = 主系统(XINFRA 统管层:CI/CD、成本看板) +> - **紫色节点** = 主系统(XINFRA 统管层:统一门户、审计聚合、CI/CD、成本看板、运维终端) > - **蓝色节点** = 子系统(有独立 WebUI 的平台:Wayne、CloudDM、CacheCloud) > - **黄色节点** = 工具层(CLI/IaC 脚本,无常驻 WebUI:Ansible Playbook) +> - **橙色节点** = 监控告警(外部依赖:Prometheus + Grafana + 告警路由) +> - **绿色节点** = 基础设施层(Ingress/WAF、RKE2 集群、大内网互联) --- @@ -228,6 +263,7 @@ graph TB - 所有生产库 SQL 操作必须经 CloudDM 工单流程,无直连通道 - 审核规则可按需配置白名单豁免 - 生产部署已替换默认 JWT 密钥和管理员密码 +- Console 多实例部署,单实例故障不影响服务可用性 --- @@ -362,6 +398,7 @@ graph TB **验收标准**: - 成本数据延迟 < 24 小时 - 支持按维度下钻到具体资源粒度 +- 云资源通过各厂商 Billing API 经 Exporter 采集入 ClickHouse;自建机房成本由 Prometheus 节点指标 + SNMP 网络指标汇总,按 Namespace → Project → Department 路径归属 --- @@ -408,18 +445,28 @@ graph TB ```mermaid graph LR + subgraph 认证 + LDAP[(企业 LDAP)] -->|统一身份认证| Portal[XINFRA 统一门户] + end + subgraph 自动化流水线 GitLab[GitLab CI] -->|镜像推送| Harbor[Harbor] GitLab -->|触发部署 API| Wayne end subgraph 平台层 + Portal -->|1:N 用户映射| Wayne + Portal -->|1:N 用户映射| CloudDM + Portal -->|1:N 用户映射| CacheCloud Wayne -->|Client-Go| K8s[RKE2 集群] - CloudDM -->|SQL 执行| MySQL[(MySQL)] + CloudDM -->|Sidecar SQL 代理| MySQL[(MySQL)] CacheCloud -->|Agent 管理| Redis[(Redis)] Ansible -->|SSH| K8s Ansible -->|SSH| MySQL Ansible -->|SSH| Redis + Wayne -.->|审计上报| AuditAgg[审计聚合] + CloudDM -.->|审计上报| AuditAgg + CacheCloud -.->|审计上报| AuditAgg end subgraph 跨集群 @@ -429,15 +476,24 @@ graph LR end subgraph 安全与网络 - WAF[WAF] -->|防护| K8s + WAF[WAF] -->|HTTP/HTTPS 防护| Ingress[Ingress 入口] + Ingress --> K8s Network[大内网] -->|互联| ClusterA Network -->|互联| ClusterB end - subgraph 成本 - CostBoard[成本看板] -.->|采集| K8s - CostBoard -.->|采集| MySQL - CostBoard -.->|采集| Redis + subgraph 监控告警 + K8s -.->|Metrics| Prometheus[(Prometheus)] + MySQL -.->|Metrics| Prometheus + Redis -.->|Metrics| Prometheus + Prometheus --> Grafana[Grafana] + Prometheus --> Alert[告警路由] + end + + subgraph 成本采集 + CloudAPI[云厂商 Billing API] -->|Exporter| CH[(ClickHouse)] + Prometheus -->|节点/网络指标| CostBoard[成本看板] + CH --> CostBoard end ``` @@ -445,13 +501,18 @@ graph LR | 源 | 目标 | 接口方式 | 说明 | |----|------|---------|------| +| 企业 LDAP | XINFRA 统一门户 | LDAP Bind | 统一身份认证,1:N 用户映射到子系统 | +| XINFRA 统一门户 | 各子系统 | 内部 API / 会话代理 | 用户选择子系统后代入本地身份 | | GitLab CI | Wayne | REST API(APIKey 认证) | 自动触发部署 | | GitLab CI | Harbor | Docker Push | 镜像推送 | | Wayne | RKE2 | Client-Go(K8s API) | 容器编排操作 | -| CloudDM | MySQL | JDBC / Sidecar 代理 | SQL 审核执行 | +| CloudDM | MySQL | Sidecar SQL 代理 | SQL 审核执行 | | CacheCloud | Redis | Agent(SSH + 心跳) | 实例生命周期管理 | -| Ansible | 各主机 | SSH | 配置管理与部署 | -| 各子系统 | 告警平台 | HTTP / 邮件 / IM | 统一告警通道 | +| Ansible | 各主机 | SSH | 基础设施初始化部署 | +| 各子系统 | 审计聚合中心 | HTTP Webhook | 操作审计统一归集 | +| 各子系统 + 基础设施 | Prometheus | HTTP / Exporter | Metrics 采集 | +| 云厂商 Billing API | ClickHouse | Exporter 定时拉取 | 多云成本数据归集 | +| Prometheus | 告警路由 | Alertmanager | 统一告警(邮件 / 企业 IM) | --- @@ -467,6 +528,22 @@ graph LR --- +## 运维分层模型 + +> 故障按层级自愈,跨层操作需主系统管理员权限。 + +| 故障层级 | 处理方 | 工具链 | 权限要求 | +|---------|--------|--------|---------| +| 应用发布异常 | 子系统自愈 | Wayne 一键回滚 | 项目成员 | +| 中间件故障 | 子系统自恢复 | CacheCloud / CloudDM 内置运维能力 | 子系统运维角色 | +| 基础设施故障 | 主系统管理员 | Ansible Playbook / SSH 终端 | 仅主系统管理员 | +| 机房级故障 | 主系统管理员 | Ansible + 大内网链路切换 | 仅主系统管理员 | + +> [!warning] 安全约束 +> Ansible / SSH 终端等基础设施级操作仅对主系统管理员角色可见,普通用户菜单中不包含此项。所有跨层操作全程审计留痕。 + +--- + ## 关联笔记 - [[technical/xinfra-preview]]