4. 安装 LitmusChaos 控制台:Litmus Portal 安装、用户注册与项目创建、仪表盘概览

LitmusChaos 控制台(Litmus Portal)是云原生混沌工程的核心管理界面。它提供了可视化的工作流编排、实验调度、结果查看和团队协作能力。本章将指导你完成 Portal 的安装、首次用户注册、项目创建以及仪表盘的核心功能概览。

4.1 Litmus Portal 架构概览

在安装之前,理解 Portal 的组件架构有助于后续的故障排查和定制化部署。Portal 采用前后端分离的微服务架构,主要包含以下组件:

架构要点: Litmus Portal 由 前端(Frontend)、后端 API 服务(Auth-Server 与 GraphQL-Server) 以及 数据库(MongoDB 与 PostgreSQL) 组成。前端通过 GraphQL 接口与后端通信,后端负责认证、授权、实验编排和数据持久化。
Litmus Portal 软件架构图 用户浏览器 (UI) Frontend (React) GraphQL Server (API Gateway) Auth Server (JWT) MongoDB (持久化) PostgreSQL (审计) 说明:GraphQL Server 作为统一入口,负责路由请求到 Auth Server 或直接操作数据库。 MongoDB 存储实验定义、项目配置;PostgreSQL 存储审计日志和用户操作记录。

4.2 安装 Litmus Portal

Litmus 提供两种安装方式:Helm Chart(推荐生产环境)和 Kubectl 快速部署(适用于测试环境)。以下步骤基于 Helm 方式,确保你已配置好 kubectl 并拥有集群管理员权限。

4.2.1 前置条件检查

组件 版本要求 说明
Kubernetes 集群 v1.20+ 支持 Ingress 或 NodePort 暴露服务
Helm v3.8+ 用于安装 Litmus Portal Chart
kubectl v1.20+ 配置了目标集群的 kubeconfig
存储类 支持 ReadWriteOnce 用于 MongoDB 和 PostgreSQL 的 PVC

4.2.2 使用 Helm 安装 Portal

执行以下命令添加 Litmus Helm 仓库并安装 Portal:

# 添加 Litmus Helm 仓库
helm repo add litmuschaos https://litmuschaos.github.io/litmus-helm/
helm repo update

# 创建命名空间
kubectl create namespace litmus

# 安装 Litmus Portal(默认包含前端、后端、数据库)
helm install litmus-portal litmuschaos/litmus-2-0-0-beta --namespace litmus --set portal.frontend.service.type=NodePort
提示: 如果你在云环境(如 EKS、AKS、GKE)中安装,建议将 portal.frontend.service.type 设置为 LoadBalancer,以自动获取外部 IP 地址。对于本地测试,使用 NodePort 后可通过 kubectl get svc -n litmus 查看映射端口。

4.2.3 验证安装状态

安装完成后,检查所有 Pod 是否处于 Running 状态:

kubectl get pods -n litmus

# 预期输出示例:
# NAME                                           READY   STATUS    RESTARTS   AGE
# litmusportal-frontend-7d8b9c6b8f-abc12         1/1     Running   0          2m
# litmusportal-server-6f9c7d8c9b-def34           1/1     Running   0          2m
# litmusportal-auth-server-5e4f6a7b8c-ghi56      1/1     Running   0          2m
# mongo-0                                        1/1     Running   0          2m
# postgresql-0                                   1/1     Running   0          2m

确认服务端点:

kubectl get svc -n litmus

# 找到 litmusportal-frontend-service 的 EXTERNAL-IP 或 NodePort 端口
# 例如:192.168.1.100:30086 或 localhost:30086

4.3 用户注册与项目创建

首次访问 Portal 时,需要完成管理员注册并创建第一个项目。项目是隔离混沌实验和资源的逻辑单元,类似于 Kubernetes 的命名空间概念。

4.3.1 注册管理员账号

  1. 在浏览器中打开 Portal 地址(例如 http://192.168.1.100:30086)。
  2. 点击 “注册” 按钮,进入注册页面。
  3. 填写以下信息:
    • 用户名: 例如 admin
    • 邮箱: 例如 admin@example.com
    • 密码: 至少 8 位,包含大小写字母和数字
    • 公司/组织: 可选,用于标识
  4. 点击 “提交”,系统会自动创建第一个项目(默认项目名与用户名相同)。
注意: 第一个注册的用户自动成为 管理员,拥有创建项目、邀请成员、管理全局配置的权限。后续注册的用户需要被管理员邀请才能加入项目。

4.3.2 创建新项目

管理员可以创建多个项目来隔离不同团队或环境的实验:

步骤 操作 说明
1 登录后点击左侧导航栏的 “项目” 进入项目列表页面
2 点击右上角 “创建项目” 按钮 弹出创建对话框
3 输入项目名称(如 production-chaos)和描述 名称需唯一,建议包含环境标识
4 点击 “确认” 项目创建成功,自动切换到新项目

4.4 仪表盘概览

仪表盘是 Portal 的首页,提供了集群状态、实验统计和最近活动的全局视图。理解仪表盘有助于快速掌握混沌工程的运行状况。

Litmus Portal 仪表盘功能模块 集群总数 3 实验运行中 2 实验成功率 95% 活跃项目 2 最近实验活动 • pod-delete (default) — 成功 — 2 分钟前 • node-cpu-hog (production) — 运行中 — 5 分钟前 • container-kill (staging) — 失败 — 10 分钟前 快速操作 • 创建新实验工作流 • 连接新 Kubernetes 集群 • 查看实验报告 仪表盘核心功能说明 顶部卡片:展示集群、实验、项目的关键指标。 左侧区域:最近实验活动的时间线,可快速跳转查看详情。 右侧区域:常用操作的快捷入口,提升工作效率。

4.4.1 仪表盘核心区域

  • 顶部统计卡片: 显示已连接集群数量、当前正在运行的实验数、实验成功率(过去 24 小时)以及活跃项目数。点击卡片可跳转到对应的详细列表。
  • 最近实验活动: 按时间倒序展示最近 10 条实验执行记录,包含实验名称、目标集群、状态(成功/失败/运行中)和执行时间。点击条目可查看实验详情和日志。
  • 快速操作: 提供“创建实验工作流”、“连接集群”、“查看报告”等常用入口,减少导航层级。
  • 项目切换器: 位于顶部导航栏右侧,点击可快速切换当前项目,仪表盘内容会随之更新为对应项目的数据。

4.4.2 仪表盘配置与自定义

用户可以根据需要调整仪表盘的显示内容:

功能 操作路径 说明
时间范围筛选 仪表盘右上角下拉菜单 支持 1 小时、6 小时、24 小时、7 天等选项
卡片排序 拖拽卡片标题区域 可自定义顶部统计卡片的排列顺序
隐藏/显示模块 仪表盘设置齿轮图标 可关闭不常用的模块,聚焦核心信息
最佳实践: 建议在仪表盘中重点关注 实验成功率 和 运行中实验数。如果成功率低于 90%,应检查最近失败的实验日志,分析是目标应用问题还是混沌实验配置不当。同时,保持活跃项目数不超过 5 个,避免仪表盘数据过于分散。

4.5 本章小结

通过本章的学习,你完成了 Litmus Portal 的安装部署,掌握了用户注册和项目创建的方法,并熟悉了仪表盘的核心功能模块。Portal 作为混沌工程的“驾驶舱”,后续所有的实验编排、执行和监控都将基于此界面进行。确保 Portal 运行稳定、项目配置正确,是开展 Pod 故障注入演练的基础。