这份文档面向两类使用者:
- 新接手这套平台的运维、研发或交付同学
- 后续会读取文档并代替人执行安装、巡检、扩缩容的 AI / 自动化系统
目标不是只告诉你“有哪些仓库”,而是让你在一台已经具备安装包的 Linux 服务器上,按统一顺序完成:
- 主机初始化
- 数据盘与 NFS 准备
- Kubernetes 安装
- 监控底座安装
- 数据保护控制面安装
- 中间件安装
- HM 业务应用安装
同时保证后来的人和 AI 能快速知道:
- 当前平台有哪些仓库、哪些产物、分别负责什么
- 默认的访问地址、账密、命名空间、依赖关系是什么
- 哪些监控资源会被 Prometheus 自动发现
- 哪些 Dashboard 会被 Grafana 自动导入
- 备份恢复该怎么接入,当前推荐先验证哪条路径
资源、地址和默认账密速查表见:
| 分类 | 仓库 | 产物 / 作用 |
|---|---|---|
| 发布包下载 | archinfra/mc |
hm-release-downloader-<arch>.run,一键从 MinIO 拉取 hm-release/<arch> |
| 主机初始化 | archinfra/bootstrapctl |
/opt/release/boot,生成 inventory.yaml、profile.yaml、ops-environment.sh |
| 数据盘 | archinfra/lvm |
/opt/release/lvm.sh,初始化并挂载 /data |
| NFS 服务端 | archinfra/nfs-server |
/opt/release/nfs-server.sh,在 master-01 导出 /data/nfs-share |
| Kubernetes | archinfra/apps_kubernetes |
/opt/release/k8s-sealos-linux-<arch>-full.run |
| NFS StorageClass | archinfra/apps_nfs-provisioner |
/opt/release/nfs-provisioner-installer-<arch>.run |
| 资源采集 | archinfra/apps_metrics-server |
/opt/release/metrics-server-installer-<arch>.run |
| 监控底座 | archinfra/app_prometheus-stack |
/opt/release/prometheus-stack-installer-<arch>.run |
| 数据保护安装器 | archinfra/data-protection-operator |
/opt/release/data-protection-operator-<arch>.run |
| 数据保护控制面源码 | archinfra/dataprotection |
资源模型、samples、addon、quickstart、user case |
| MySQL | archinfra/apps_mysql |
/opt/release/mysql-installer-<arch>.run |
| Redis | archinfra/apps_redis-cluster |
/opt/release/redis-cluster-installer-<arch>.run |
| Nacos | archinfra/apps_nacos |
/opt/release/nacos-installer-<arch>.run |
| MinIO | archinfra/apps_minio-cluster |
/opt/release/minio-cluster-installer-<arch>.run |
| RabbitMQ | archinfra/apps_rabbitmq-cluster |
/opt/release/rabbitmq-cluster-installer-<arch>.run |
| MongoDB | archinfra/apps_mongodb-cluster |
/opt/release/mongodb-cluster-installer-<arch>.run |
| Milvus | archinfra/apps_milvus-cluster |
/opt/release/milvus-cluster-installer-<arch>.run |
| HM 业务集成包 | archinfra/hm |
/opt/release/hm-installer-<arch>.run |
这套平台不是“每个项目各搞一套风格”,而是逐步统一到同一类离线交付习惯:
- 优先提供
amd64/arm64两种.run安装包 - 优先通过 GitHub Actions 构建 release
- 安装前先执行
help或--help - 安装后必须执行
status - 已经在内网仓库存在镜像时,优先使用
--skip-image-prepare - 资源档位逐步统一到
--resource-profile low|mid|high - 较新的安装器支持
install -f <config.yaml>或samples导出模板
注意:
- 不是所有安装器都已经支持完全一样的参数
- 不要凭经验假设参数名,执行前始终以当前包的
help输出为准
这是默认交付方式。开始前先确认:
ls -lh /opt/release
uname -m如果目标机器还没有安装包,可以先使用 archinfra/mc 产出的下载器:
chmod +x ./hm-release-downloader-amd64.run
./hm-release-downloader-amd64.run --target-dir /opt/release-cache它会:
- 自动识别当前机器架构
- 让你交互输入 MinIO
AK/SK - 自动下载
hm-release/amd64或hm-release/arm64
默认 MinIO 地址是:
https://minio-console.hm.metavarse.tech:9443
| 项目 | 默认值 |
|---|---|
| 安装包目录 | /opt/release |
| 建议工作目录 | /opt/cluster-deploy |
| LVM 挂载点 | /data |
| NFS 导出目录 | /data/nfs-share |
| container graph root | /data/graphroot |
| containerd 数据目录 | /data/containerd |
| NFS Server 节点 | master-01 |
| 默认 StorageClass | nfs |
| 中间件默认命名空间 | aict |
| Milvus 默认命名空间 | milvus-system |
| Prometheus 默认命名空间 | monitoring |
| 数据保护 operator 命名空间 | data-protection-system |
| 数据保护业务命名空间 | backup-system |
推荐顺序如下:
bootstrapctl生成主机级配置lvm初始化并挂载/datanfs-server在master-01提供/data/nfs-shareapps_kubernetes安装 Kubernetesapps_nfs-provisioner安装默认nfsStorageClassapps_metrics-server打开资源采集app_prometheus-stack安装监控底座data-protection-operator安装数据保护控制器- 安装各个中间件
- 根据已上线的数据源接入备份恢复策略
- 最后安装 HM 业务应用
cd /opt/cluster-deploy
cp /opt/release/boot ./boot
chmod +x ./boot
./boot init -d ./bootstrap/demo-env -c demo-env
./boot scan -i ./bootstrap/demo-env/inventory.yaml -t 20s
./boot plan -i ./bootstrap/demo-env/inventory.yaml -p ./bootstrap/demo-env/profile.yaml -t 20s
./boot apply -i ./bootstrap/demo-env/inventory.yaml -p ./bootstrap/demo-env/profile.yaml -t 20s
./boot verify -i ./bootstrap/demo-env/inventory.yaml -p ./bootstrap/demo-env/profile.yaml -t 20s补充导出旧脚本兼容环境:
./boot export-ops-env \
-i ./bootstrap/demo-env/inventory.yaml \
-o ./bootstrap/demo-env/ops-environment.sh/opt/release/lvm.sh -y --vg-name ops_vg_data --lv-name ops_lv_data --mount-point /data --fs-type xfs --disks /dev/vdb
/opt/release/nfs-server.sh -d /data/nfs-share -y
/opt/release/k8s-sealos-linux-amd64-full.run help
/opt/release/nfs-provisioner-installer-amd64.run install --nfs-server <master-01-ip> --nfs-path /data/nfs-share -y/opt/release/metrics-server-installer-amd64.run install --kubelet-insecure-tls -y
/opt/release/metrics-server-installer-amd64.run status
kubectl top nodes/opt/release/prometheus-stack-installer-amd64.run install \
--namespace monitoring \
--grafana-admin-password 'admin@passw0rd' \
-y
/opt/release/prometheus-stack-installer-amd64.run status -n monitoring默认外部访问:
- Grafana:
http://<任一节点IP>:30090 - Prometheus:
http://<任一节点IP>:30091
/opt/release/data-protection-operator-amd64.run install -y
/opt/release/data-protection-operator-amd64.run status建议理解方式:
data-protection-operator负责安装 controller、CRD、RBACdataprotection仓库负责 samples、addon、quickstart、user case
当前最成熟的验证路径:
- 先安装 MySQL
- 再准备一套专用 MinIO 或 NFS 作为备份后端
- 再按
dataprotection仓库的 quickstart/user case 接入 MySQL 备份恢复
推荐顺序:
- MySQL
- Redis
- Nacos
- MinIO
- RabbitMQ
- MongoDB
- Milvus
最小安装示例:
/opt/release/mysql-installer-amd64.run install --resource-profile mid -y
/opt/release/redis-cluster-installer-amd64.run install --resource-profile mid -y
/opt/release/nacos-installer-amd64.run install --mysql-host mysql-0.mysql.aict --mysql-password 'passw0rd' --resource-profile mid -y
/opt/release/minio-cluster-installer-amd64.run install --resource-profile mid -y
/opt/release/rabbitmq-cluster-installer-amd64.run install --resource-profile mid -y
/opt/release/mongodb-cluster-installer-amd64.run install --resource-profile mid -y
/opt/release/milvus-cluster-installer-amd64.run install --resource-profile mid -yHM 必须在这些组件都 ready 后再安装:
- MySQL
- Redis
- MinIO
- MongoDB
- RabbitMQ
- Milvus
安装命令:
/opt/release/hm-installer-amd64.run help
/opt/release/hm-installer-amd64.run install -y
/opt/release/hm-installer-amd64.run status如果需要更强可定制性,优先使用:
/opt/release/hm-installer-amd64.run samples --output-dir ./hm-samples
/opt/release/hm-installer-amd64.run install -f ./hm-config.yaml -ygraph TD
Boot["bootstrapctl"] --> LVM["lvm /data"]
LVM --> NFS["nfs-server"]
LVM --> K8S["apps_kubernetes"]
NFS --> NfsSC["apps_nfs-provisioner"]
K8S --> NfsSC
K8S --> Metrics["metrics-server"]
K8S --> Prom["Prometheus Stack"]
NfsSC --> Prom
K8S --> DPO["data-protection-operator"]
NfsSC --> MySQL["MySQL"]
NfsSC --> Redis["Redis"]
MySQL --> Nacos["Nacos"]
NfsSC --> MinIO["MinIO"]
NfsSC --> Rabbit["RabbitMQ"]
NfsSC --> Mongo["MongoDB"]
NfsSC --> Milvus["Milvus"]
DPO --> DP["dataprotection"]
MySQL --> DP
MinIO --> DP
NFS --> DP
HM["HM"] --> MySQL
HM --> Redis
HM --> MinIO
HM --> Mongo
HM --> Rabbit
HM --> Milvus
Prom --> SM["ServiceMonitor / PodMonitor / PrometheusRule / Dashboard"]
Prometheus 默认跨 namespace 发现监控资源,但只会选择带下面标签的对象:
monitoring.archinfra.io/stack=default
适用资源:
ServiceMonitorPodMonitorProbePrometheusRule
Grafana sidecar 默认跨 namespace 搜索 Dashboard ConfigMap,契约如下:
- 标签:
grafana_dashboard=1 - 可选注解:
grafana_folder=<目录名>
示例:
metadata:
labels:
grafana_dashboard: "1"
monitoring.archinfra.io/stack: default
annotations:
grafana_folder: "Middleware/MySQL"| 组件 | 默认监控 |
|---|---|
| MySQL | exporter + ServiceMonitor |
| Redis | exporter + ServiceMonitor |
| Nacos | metrics + ServiceMonitor |
| MinIO | metrics + ServiceMonitor |
| RabbitMQ | metrics + ServiceMonitor + PrometheusRule |
| MongoDB | metrics + ServiceMonitor |
| Milvus | Milvus ServiceMonitor + embedded etcd/MinIO 监控 |
Prometheus Stack 自带 Kubernetes 基础告警规则,但应用级告警需要各中间件仓库自己补 PrometheusRule。推荐理解为两层:
- 平台层:Kubernetes、node、kubelet、prometheus、alertmanager 默认规则
- 应用层:MySQL、Redis、MinIO、RabbitMQ、MongoDB、Milvus 各自的指标和规则
data-protection-operator- 安装 controller、CRD、RBAC、notification gateway
dataprotection- 提供
BackupAddon、BackupSource、BackupStorage、BackupPolicy、BackupJob、RestoreJob、Snapshot等模型和样例
- 提供
BackupStorage当前支持nfs和minioBackupPolicy支持多存储 fan-outRestoreJob支持按平台Snapshot恢复RestoreJob支持按导入包恢复- 保留策略会同时清理 CR 和后端历史文件
- Webhook 通知已经进入统一模型
不要把备份系统理解成“某个中间件自己的 shell 脚本”。更适合的理解方式是:
- 平台层负责调度、上传下载、保留、通知、恢复入口
- 中间件只通过 addon 提供导入导出逻辑
当前最建议先验证:
- MySQL + MinIO
- MySQL + NFS
| 组件 | 命名空间 | 内网访问 | 外网访问 | 默认账密 / 备注 |
|---|---|---|---|---|
| Prometheus Stack | monitoring |
prometheus-stack-kube-prom-prometheus.monitoring.svc:9090 |
Grafana 30090,Prometheus 30091 |
Grafana admin / admin@passw0rd |
| Data Protection Operator | data-protection-system |
控制器,不提供业务入口 | 不暴露 | 业务 CR 常用命名空间 backup-system |
| MySQL | aict |
mysql.aict.svc.cluster.local:3306 |
30306 |
root / passw0rd |
| Redis | aict |
redis-cluster.aict.svc.cluster.local:6379 |
默认不暴露 | 密码 Redis@Passw0rd |
| Nacos | aict |
http://nacos.aict.svc.cluster.local:8848/nacos |
HTTP 30094,gRPC 30930 |
默认依赖 MySQL frame_nacos_demo |
| MinIO | aict |
minio.aict.svc.cluster.local:9000 |
API 30093,Console 30092 |
minioadmin / minioadmin@123 |
| RabbitMQ | aict |
rabbitmq-cluster.aict.svc.cluster.local:5672 |
默认不暴露 | admin / RabbitMQ@Passw0rd |
| MongoDB | aict |
mongodb-cluster-0..2.mongodb-cluster-headless.aict.svc.cluster.local:27017 |
默认不暴露 | root / MongoDB@Passw0rd |
| Milvus | milvus-system |
milvus-cluster.milvus-system.svc.cluster.local:19530 |
默认不暴露 | 默认 cluster 模式 |
| HM | aict |
依赖各中间件 service | 30080 / 31721 / 32136 / 31285 / 31196 |
强依赖 MySQL、Redis、MinIO、MongoDB、RabbitMQ、Milvus |
每装完一个组件,建议记录下面这张信息卡:
组件名:
安装时间:
安装命令:
安装包版本:
命名空间:
内部地址:
外部地址:
默认账密或已轮换账密:
依赖组件:
PVC / 存储:
status 结果:
备注:
- 先识别当前机器架构,再选择对应
amd64或arm64安装包。 - 任何安装前,先执行该包的
help。 - 任何安装后,至少执行:
<installer> statuskubectl get pods,svc,pvc -n <namespace>
- 看到 PVC
Pending时,优先检查:- NFS Server
- NFS StorageClass
/data/nfs-share
- 看到监控未发现时,优先检查监控对象是否带:
monitoring.archinfra.io/stack=default
- 看到 Dashboard 未自动出现时,优先检查 ConfigMap 是否带:
grafana_dashboard=1
- 看到数据保护未生效时,优先检查:
- operator 是否 ready
BackupStorageprobe 是否成功- 数据源和 addon 是否已经注册
- 生产环境部署完成后,必须轮换默认密码。
- RESOURCE-BASELINE.zh-CN.md
archinfra/dataprotection仓库中的 quickstart、user case、samples- 各中间件仓库各自 README 中的
help示例和资源档位说明