Compare commits
5 Commits
338cfce3f0
...
aa6bbb0f62
| Author | SHA1 | Date | |
|---|---|---|---|
| aa6bbb0f62 | |||
| 83b990afa9 | |||
| ebdddfcb03 | |||
| 137932996b | |||
| ed1df2a8ba |
+80
-306
@@ -72,10 +72,12 @@ layout: default
|
||||
|
||||
### 五、架构图
|
||||
|
||||
- 平台分层
|
||||
- 总体分层
|
||||
- 主系统功能
|
||||
- 子系统集成
|
||||
- 自动化执行
|
||||
- 部署架构
|
||||
- 监控告警
|
||||
- 安全认证
|
||||
- 监控数据流
|
||||
|
||||
</div>
|
||||
<div>
|
||||
@@ -546,315 +548,111 @@ layout: center
|
||||
|
||||
# 四、架构设计
|
||||
|
||||
<div class="text-gray-400 mt-2">平台分层 · 部署 · 监控 · 安全</div>
|
||||
|
||||
---
|
||||
|
||||
# 平台分层架构 — 总体分层
|
||||
|
||||
<div class="mt-2">
|
||||
<div class="mt-4" style="transform: scale(1.0); transform-origin: top left;">
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
User["用户层<br/>LDAP SSO 统一认证"] --> Main["主系统层<br/>统一门户 + 功能模块"]
|
||||
Main --> Sub["子系统层<br/>独立部署,各自授权"]
|
||||
Main --> Infra["基础设施层<br/>计算 · 网络 · 存储 · 自动化"]
|
||||
User["用户层<br/>LDAP SSO 统一认证"] --> Main["XINFRA 主系统层<br/>统一入口 + 资源纳管 + 交付 + 审计"]
|
||||
Main --> Sub["专业子系统层<br/>Wayne / Apollo / CloudDM / 夜莺"]
|
||||
Main --> Auto["自动化执行层<br/>Ansible 控制中心"]
|
||||
Main --> Infra["基础设施层<br/>计算 · 网络 · 存储 · 监控源"]
|
||||
Sub --> Infra
|
||||
Auto --> Infra
|
||||
|
||||
style User fill:#f3e8fd,stroke:#9333ea
|
||||
style Main fill:#e0f2fe,stroke:#0284c7
|
||||
style Sub fill:#e8f0fe,stroke:#4285f4
|
||||
style Infra fill:#ecfdf5,stroke:#059669
|
||||
style Auto fill:#ecfdf5,stroke:#059669
|
||||
style Infra fill:#fff7ed,stroke:#f97316
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-4 text-sm text-gray-400">
|
||||
|
||||
> 四层模型:用户层 → 主系统层 → 子系统层 → 基础设施层,主系统是统一入口,子系统各司其职。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 平台分层架构 — 主系统功能
|
||||
# 平台分层架构 — 主系统功能架构
|
||||
|
||||
<div class="mt-2">
|
||||
<div class="mt-4">
|
||||
|
||||
```mermaid
|
||||
mindmap
|
||||
root((统一入口))
|
||||
SSO 登录
|
||||
菜单聚合
|
||||
资源纳管
|
||||
K8s 集群管理
|
||||
基础服务交付
|
||||
数据库审核
|
||||
任务中心
|
||||
审计中心
|
||||
监控概览
|
||||
权限中心
|
||||
配置接入
|
||||
业务交付
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 自动化执行架构
|
||||
|
||||
<div class="mt-4">
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
Portal["统一门户<br/>LDAP SSO 跳转入口"]
|
||||
Main["XINFRA 主系统"]
|
||||
AC["Ansible 控制中心<br/>独立部署"]
|
||||
|
||||
subgraph 全局视图
|
||||
DashBoard["资源大盘<br/>集群拓扑 · 节点方格图"]
|
||||
MonitorView["资源状态看板<br/>物理机/虚机/服务三层告警"]
|
||||
subgraph 各区域
|
||||
RegionA["区域 A"]
|
||||
RegionB["区域 B"]
|
||||
RegionC["区域 C"]
|
||||
end
|
||||
|
||||
subgraph 运维能力
|
||||
TaskCenter["任务中心<br/>Ansible/Wayne 实时日志"]
|
||||
OpsTerminal["运维终端<br/>Ansible / SSH<br/>仅管理员"]
|
||||
end
|
||||
|
||||
subgraph 治理能力
|
||||
AuditDash["审计面板<br/>登录记录 · 运维操作日志"]
|
||||
CMDB["资源台账<br/>CMDB 多云同步"]
|
||||
SvcDir["服务目录<br/>Consul 只读聚合"]
|
||||
end
|
||||
|
||||
Portal --> DashBoard & MonitorView & TaskCenter & AuditDash & CMDB & SvcDir
|
||||
Main -->|任务提交 / 结果查询| AC
|
||||
AC -->|SSH / Playbook| RegionA
|
||||
AC -->|SSH / Playbook| RegionB
|
||||
AC -->|SSH / Playbook| RegionC
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2 text-sm text-gray-400">
|
||||
|
||||
> 主系统不替代子系统,只自建子系统无法覆盖的能力:全局视图、运维兜底、审计、资源台账。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 平台分层架构 — 子系统集成
|
||||
|
||||
<div class="mt-2" style="transform: scale(0.5); transform-origin: top left; height: 50vh;">
|
||||
|
||||
# 监控与数据流
|
||||
|
||||
<div class="mt-4">
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
Portal["XINFRA 主系统"]
|
||||
|
||||
subgraph 子系统
|
||||
Wayne["Wayne<br/>容器发布与配额管理"]
|
||||
CloudDM["CloudDM<br/>SQL 审核"]
|
||||
CacheCloud["CacheCloud<br/>Redis 全生命周期"]
|
||||
Apollo["Apollo<br/>配置中心"]
|
||||
QPass["qpass<br/>七牛运维平台"]
|
||||
Grafana["Grafana<br/>指标可视化"]
|
||||
Superset["Superset<br/>日志可视化"]
|
||||
subgraph 资源层
|
||||
K8s["K8s 集群"]
|
||||
Node["物理机 / 虚机"]
|
||||
end
|
||||
|
||||
Portal -.->|SSO 跳转| Wayne & CloudDM & CacheCloud & Apollo & QPass & Grafana & Superset
|
||||
subgraph 监控源
|
||||
Nightingale["夜莺"]
|
||||
end
|
||||
|
||||
Wayne -->|Client-Go| RKE2["RKE2 集群"]
|
||||
CloudDM -->|SQL 审核| MySQL[("MySQL")]
|
||||
CacheCloud -->|Agent| Redis[("Redis")]
|
||||
Apollo -->|ConfigService| RKE2
|
||||
Grafana -->|PromQL| VM["VictoriaMetrics"]
|
||||
Superset -->|SQL| CH["ClickHouse"]
|
||||
subgraph 展示层
|
||||
Main["XINFRA 监控概览"]
|
||||
end
|
||||
|
||||
K8s -.->|指标| Nightingale
|
||||
Node -.->|指标| Nightingale
|
||||
Nightingale --> Main
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
---
|
||||
|
||||
# 平台分层架构 — 基础设施层
|
||||
|
||||
<div class="mt-2" style="transform: scale(0.5); transform-origin: top left; height: 50vh;">
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph 计算
|
||||
RKE2["RKE2 集群 × 7 机房<br/>CIS 安全加固"]
|
||||
end
|
||||
|
||||
subgraph 网络
|
||||
Calico["Calico BGP<br/>每集群独立 AS 号<br/>跨机房扁平互通"]
|
||||
end
|
||||
|
||||
subgraph 存储
|
||||
Ceph["Ceph RBD<br/>MySQL/Redis 有状态服务 PV"]
|
||||
end
|
||||
|
||||
subgraph 自动化
|
||||
Ansible["Ansible Playbook<br/>节点初始化 · 服务部署<br/>WebSocket 实时日志"]
|
||||
end
|
||||
|
||||
RKE2 --> Calico
|
||||
RKE2 --> Ceph
|
||||
Ansible -->|SSH| RKE2
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
---
|
||||
|
||||
# 部署架构
|
||||
|
||||
<div class="mt-2" style="transform: scale(0.45); transform-origin: top left; height: 50vh;">
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "RKE2 集群(任一机房)"
|
||||
subgraph "xinfra 命名空间"
|
||||
FE["Nginx<br/>前端静态文件 + 反向代理"]
|
||||
BE["Go API Server<br/>Deployment × 2"]
|
||||
WS["WebSocket Gateway<br/>任务日志实时推送"]
|
||||
end
|
||||
|
||||
subgraph "监控命名空间"
|
||||
VM[("VictoriaMetrics")]
|
||||
Grafana["Grafana"]
|
||||
NE["Nightingale"]
|
||||
end
|
||||
|
||||
subgraph "子系统命名空间"
|
||||
Wayne["Wayne"]
|
||||
CloudDM["CloudDM"]
|
||||
CacheCloud["CacheCloud"]
|
||||
Apollo["Apollo"]
|
||||
Superset["Superset"]
|
||||
end
|
||||
end
|
||||
|
||||
LB["SLB / NodePort"] --> FE
|
||||
FE -->|/api/*| BE
|
||||
FE -->|WebSocket| WS
|
||||
BE --> MySQL[("MySQL 8.0 主从")]
|
||||
BE --> Redis[("Redis 会话缓存")]
|
||||
BE -->|SSH/Ansible| Nodes["业务节点池"]
|
||||
WS --> BE
|
||||
|
||||
style FE fill:#e0f2fe,stroke:#0284c7
|
||||
style BE fill:#e0f2fe,stroke:#0284c7
|
||||
style WS fill:#e0f2fe,stroke:#0284c7
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
Nginx 托管前端静态文件并反向代理后端 API,Go API Server 无状态水平扩展,WebSocket Gateway 独立处理实时日志推送
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 监控告警数据流
|
||||
|
||||
<div class="mt-2" style="transform: scale(0.8); transform-origin: top left; height: 50vh;">
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph 采集源
|
||||
RKE2["RKE2 集群"]
|
||||
Zabbix["Zabbix<br/>硬件监控"]
|
||||
end
|
||||
|
||||
subgraph 指标存储
|
||||
VM[("VictoriaMetrics<br/>容器/业务指标")]
|
||||
end
|
||||
|
||||
subgraph 可视化
|
||||
Grafana["Grafana 仪表盘"]
|
||||
end
|
||||
|
||||
subgraph 告警链路
|
||||
Nightingale["夜莺<br/>去重 · 收敛 · 分级"]
|
||||
end
|
||||
|
||||
RKE2 -.->|Metrics| VM
|
||||
VM --> Grafana
|
||||
VM --> Nightingale
|
||||
Zabbix -.->|Webhook| Nightingale
|
||||
Zabbix -->|Zabbix API| Main["XINFRA 主系统<br/>资源状态看板"]
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-58 text-sm text-gray-400">
|
||||
|
||||
> Zabbix 硬件监控分两条链路:告警事件通过 Webhook 推送至夜莺统一聚合;可观测数据(IPMI/温度/电源/风扇等)由主系统直接调用 Zabbix API 采集展示。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 基础服务交付流程
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor User as 业务人员
|
||||
participant Portal as XINFRA 服务目录
|
||||
participant Ansible as Ansible Playbook
|
||||
participant Infra as RKE2 / 主机
|
||||
participant Sub as 子系统注册
|
||||
|
||||
User->>Portal: 选择服务卡片,填写业务线、规格
|
||||
Portal->>Portal: 实时预览 playbook 参数(YAML)
|
||||
User->>Portal: 确认部署
|
||||
Portal->>Ansible: 提交 playbook 任务
|
||||
Ansible->>Infra: 内核初始化 · containerd · 加入集群
|
||||
Ansible-->>Portal: 任务状态 → WebSocket 实时日志
|
||||
Portal->>Sub: 自动注册(CloudDM / CacheCloud)
|
||||
Portal-->>User: 部署完成,跳转任务中心
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
---
|
||||
|
||||
# 多租户隔离模型
|
||||
|
||||
<div class="mt-2" style="transform: scale(1); transform-origin: top left; height: 50vh;">
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
LDAP["企业 LDAP"] -->|部门 DN| BL["业务线租户<br/>Kodo / LAS / 灵矽 / ..."]
|
||||
|
||||
BL --> NS["Kubernetes Namespace<br/>+ ResourceQuota + LimitRange"]
|
||||
BL --> NP["物理节点池<br/>node-label + taint"]
|
||||
|
||||
NS -.->|Pod 只能调度到<br/>本业务线节点| NP
|
||||
|
||||
style LDAP fill:#f3e8fd,stroke:#9333ea
|
||||
style BL fill:#e0f2fe,stroke:#0284c7
|
||||
style NS fill:#ecfdf5,stroke:#059669
|
||||
style NP fill:#fef3c7,stroke:#d97706
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-30 text-sm text-gray-400">
|
||||
|
||||
> **双重隔离**:节点层通过 `business-line=xxx` 标签 + Taint 确保 Pod 调度隔离;命名空间层通过 ResourceQuota / LimitRange 限制资源用量上限。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 安全认证流程
|
||||
|
||||
<div class="mt-2" style="transform: scale(0.65); transform-origin: top left; height: 50vh;">
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor User as 用户
|
||||
participant Main as XINFRA 主系统
|
||||
participant LDAP as 企业 LDAP
|
||||
participant Sub as 子系统
|
||||
|
||||
User->>Main: 访问主系统
|
||||
Main->>LDAP: SAML 认证请求
|
||||
LDAP-->>Main: SAML Response(用户身份 + LDAP 组信息)
|
||||
Main->>Main: 签发 JWT Token(含角色 + 业务线)
|
||||
Main-->>User: 登录成功,返回 Token
|
||||
|
||||
User->>Main: 点击子系统卡片
|
||||
Main->>Sub: OAuth 2.0 Authorization Code
|
||||
Sub->>Main: 验证 Token,创建子系统会话
|
||||
Main-->>User: 跳转至子系统(免登录)
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-60 text-sm text-gray-400">
|
||||
|
||||
> 外部 LDAP 通过 SAML 集成统一认证;子系统 SSO 通过 OAuth 2.0 对接,实现单点登录免跳转。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
section: 对接子系统
|
||||
layout: center
|
||||
@@ -872,7 +670,7 @@ layout: center
|
||||
<div>
|
||||
|
||||
### 定位
|
||||
多集群 Kubernetes 容器管理平台,负责**业务容器发布**和**命名空间与配额管理**,复用 Wayne 原生多租户能力。
|
||||
**多租户 K8s 资源管理平台**,提供命名空间与资源配额管理。RKE2 集群和 GitLab CI 通过 Wayne 进行 K8s 资源管控与业务容器发布。
|
||||
|
||||
### 核心能力
|
||||
- **业务容器发布** — Deployment、StatefulSet 等工作负载的部署与回滚
|
||||
@@ -1015,6 +813,18 @@ graph LR
|
||||
|
||||
---
|
||||
|
||||
# 子系统 — qpass(七牛统一运维平台)
|
||||
|
||||
<div class="mt-8 text-lg leading-relaxed">
|
||||
|
||||
七牛云内部**统一运维平台**,提供基础设施运维操作的标准化入口。
|
||||
|
||||
XINFRA 通过 SSO 对接 qpass,运维人员从统一入口跳转即可使用,无需单独登录。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 子系统 — Grafana(指标可视化平台)
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4">
|
||||
@@ -1076,44 +886,8 @@ graph LR
|
||||
Main["XINFRA 主系统"] -.->|SSO| Superset
|
||||
```
|
||||
|
||||
### 说明
|
||||
- 与 Grafana 互补:Grafana 侧重实时指标监控,Superset 侧重日志数据的探索分析
|
||||
- 支持 SQL 自定义查询,适合复杂日志场景的灵活分析
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 子系统 — qpass(七牛统一运维平台)
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4">
|
||||
<div>
|
||||
|
||||
### 定位
|
||||
七牛云内部的**统一运维平台**,提供基础设施运维、密码管理等基础能力。
|
||||
|
||||
### 核心能力
|
||||
- **密码管理** — 集中存储和管理各类账号密码、密钥、证书
|
||||
- **权限控制** — 基于 RBAC 的访问权限,按业务线隔离
|
||||
- **审计追溯** — 密码访问、修改、共享全程记录
|
||||
- **自动轮换** — 支持定期密码轮换策略,降低泄露风险
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 关键对接
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
QPass["qpass<br/>七牛运维平台"] -->|密码分发| RKE2["RKE2 集群"]
|
||||
QPass -->|密码注入| DB["MySQL / Redis"]
|
||||
Main["XINFRA 主系统"] -.->|SSO| QPass
|
||||
```
|
||||
|
||||
### 说明
|
||||
- 七牛内部系统,XINFRA 通过 SSO 跳转对接
|
||||
- 基础设施部署完成后,密码由 qpass 统一管理并注入
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user