b4944d7c21
官方仓库把全部镜像放在同一个镜像仓库 iotlcm/iotlcm 下,靠 tag 区分服务: .../iotlcm/iotlcm:mysql-8.0 .../iotlcm/iotlcm:iotlcm-admin-svr-v1.0.4 .../iotlcm/iotlcm:iotlcm-app-server-v1.0.2 改动页面: - prerequisites:镜像仓库章节重写,补充命名空间/镜像仓库/tag 三层结构说明, 不再提 library/ 命名空间 - configuration:镜像地址示例与 tag 规则表 - build-image:构建命令、命名规则表、基础组件同步脚本、验证命令同步改 - offline:离线镜像清单 - split:分离部署示例 已构建通过,6 个相关页面均可访问。
136 lines
4.3 KiB
Markdown
136 lines
4.3 KiB
Markdown
---
|
||
title: 环境准备
|
||
description: 部署 IotLCM 所需的硬件、系统、Docker 与网络条件
|
||
outline: deep
|
||
---
|
||
|
||
# 环境准备
|
||
|
||
## 硬件要求
|
||
|
||
按数据规模选择:
|
||
|
||
| 场景 | CPU | 内存 | 磁盘 | 说明 |
|
||
| --- | --- | --- | --- | --- |
|
||
| 试用 / 演示 | 2 核 | 4 GB | 40 GB | 少量卡片,建议停用定时同步任务 |
|
||
| 生产(中小规模) | 4 核 | 8 GB | 200 GB | 万级卡片,开启全量同步 |
|
||
| 生产(大规模) | 8 核+ | 16 GB+ | 500 GB+ | 十万级卡片,建议数据库独立部署 |
|
||
|
||
磁盘估算:MySQL 数据约 1~2 KB/张卡;日志随同步任务量增长,建议单独挂载并配置轮转。
|
||
|
||
生产 8 GB 场景的内存分配参考:
|
||
|
||
| 服务 | 占用 |
|
||
| --- | --- |
|
||
| MySQL | 1~2 GB |
|
||
| Redis | 200~500 MB |
|
||
| RabbitMQ | 300~500 MB |
|
||
| worker-svr | 500 MB~1 GB(与并发同步卡片数相关) |
|
||
| 其余业务服务 | 各 100~200 MB |
|
||
|
||
## 系统要求
|
||
|
||
| 项 | 要求 |
|
||
| --- | --- |
|
||
| 操作系统 | Linux x86_64(CentOS 7+ / Ubuntu 20.04+ / Debian 11+) |
|
||
| 内核 | 3.10 以上 |
|
||
| 文件系统 | ext4 / xfs |
|
||
| 时区 | 建议 `Asia/Shanghai`,与 `docker-compose.yml` 的 `TZ` 保持一致 |
|
||
|
||
## Docker 要求
|
||
|
||
| 组件 | 最低版本 | 说明 |
|
||
| --- | --- | --- |
|
||
| Docker Engine | 20.10 | 需支持 `healthcheck` 与 `profiles` |
|
||
| Docker Compose | v2.0(插件版) | 使用 `docker compose` 而非 `docker-compose` |
|
||
|
||
验证:
|
||
|
||
```bash
|
||
docker version
|
||
docker compose version
|
||
```
|
||
|
||
`docker compose version` 需 ≥ v2.0。若只有 `docker-compose`(v1),请升级到 Compose V2 插件。
|
||
|
||
## 镜像仓库
|
||
|
||
平台镜像发布在阿里云容器镜像服务,**仓库类型为公开,无需登录即可拉取**。
|
||
|
||
| 项 | 值 |
|
||
| --- | --- |
|
||
| 公网地址 | `crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com` |
|
||
| VPC 地址 | `crpi-qflrqrxoohlkkvgc-vpc.cn-chengdu.personal.cr.aliyuncs.com` |
|
||
| 命名空间 | `iotlcm` |
|
||
| 地域 | 西南1(成都) |
|
||
|
||
**所有镜像都放在同一个镜像仓库** `iotlcm/iotlcm` 下,靠 tag 区分服务与版本:
|
||
|
||
```text
|
||
crpi-.../iotlcm/iotlcm:mysql-8.0
|
||
crpi-.../iotlcm/iotlcm:redis-7.2
|
||
crpi-.../iotlcm/iotlcm:iotlcm-admin-svr-v1.0.4
|
||
crpi-.../iotlcm/iotlcm:iotlcm-openapi-v1.0.4
|
||
crpi-.../iotlcm/iotlcm:iotlcm-app-server-v1.0.2
|
||
```
|
||
|
||
tag 格式统一为 **`<服务名>-<版本>`**。
|
||
|
||
地址结构是 `<Registry>/<命名空间>/<镜像仓库>:<tag>`,即:
|
||
|
||
```text
|
||
crpi-...cn-chengdu.personal.cr.aliyuncs.com / iotlcm / iotlcm : iotlcm-admin-svr-v1.0.4
|
||
↑ 命名空间 ↑ 镜像仓库 ↑ tag
|
||
```
|
||
|
||
`docker-compose.yml` 里的镜像地址已预置为上述公网地址,一般无需修改。
|
||
|
||
::: tip 基础组件也在同一仓库
|
||
MySQL、Redis、RabbitMQ、Consul、nginx 同样在这个仓库里(`mysql-8.0`、`redis-7.2` 等 tag),不从 Docker Hub 直连(公网不稳定且 tag 会漂)。版本已在编排文件中固定。
|
||
:::
|
||
|
||
::: tip 阿里云 VPC 地址
|
||
若部署在阿里云同地域 ECS 上,可把编排文件里的 Registry 前缀改为 VPC 地址,走内网流量、不消耗公网带宽:
|
||
|
||
```yaml
|
||
image: 'crpi-qflrqrxoohlkkvgc-vpc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:mysql-8.0'
|
||
```
|
||
:::
|
||
|
||
## 网络与防火墙
|
||
|
||
仅需对外开放反向代理端口(默认 80 / 443),其余服务端口应限制为内网访问。
|
||
|
||
```bash
|
||
# 示例:firewalld 仅放行 80/443
|
||
firewall-cmd --permanent --add-service=http
|
||
firewall-cmd --permanent --add-service=https
|
||
firewall-cmd --reload
|
||
```
|
||
|
||
::: tip 默认只监听本机
|
||
`admin-svr`、`admin-ui`、`openapi`、`app-server`、`app-web`、`docs` 默认绑定 `127.0.0.1`,只能本机访问。对外需通过反向代理,见[可选服务](optional)。
|
||
:::
|
||
|
||
## 外部依赖(可选)
|
||
|
||
| 服务 | 用途 | 不配置的影响 |
|
||
| --- | --- | --- |
|
||
| TDengine 3.x | 存流量历史数据 | 历史流量查询不可用,主流程正常 |
|
||
| 短信服务商 | 发送验证码 | 无法发送短信 |
|
||
| 微信支付 | 在线支付 | 支付功能不可用 |
|
||
| 飞书 | 运维通知 | 不启动 bot 即可 |
|
||
|
||
TDengine 需开启 WebSocket 接口(默认 6041),在 `docker-compose.yml` 中配置:
|
||
|
||
```bash
|
||
TDENGINE_HOST=tdengine.example.com
|
||
TDENGINE_PORT=6041
|
||
TDENGINE_USER=root
|
||
TDENGINE_PASSWORD=
|
||
TDENGINE_DAILY_DB=iotlcm_daily
|
||
TDENGINE_MONTHLY_DB=iotlcm_monthly
|
||
```
|
||
|
||
不使用时全部留空。
|