下载工作台
PaaS 组件实战

生产化:HA、备份、多环境与 22 分类速查

试读上半部分 · 解锁后可读全文

第 15 章 · 生产化:高可用、备份、多环境与选型速查

本章汇总 上集群后如何稳态运行:容量规划、备份恢复、多环境隔离,以及应用商店 22 个分类 的选型速查表。

前置:完成第 1~14 章任一全栈剧本。


15.1 生产化成熟度模型

级别特征小紫对应能力
L1 演示单节点、单副本、NodePort 直连应用商店四步向导
L2 可运维监控告警、日志、备份、命名空间隔离第 6/10 章 + 管理 → 备份恢复
L3 可扩展Ingress、CI/CD、配置中心第 11~13 章
L4 高可用多副本无状态、外置 HA 中间件、跨节点多节点 kubeadm + 外置 DB/MQ 集群
商店多数有状态组件默认 副本数 1 + 单 PVC(第 1 章约束)。生产 HA 通常需要:外置托管服务多实例分片架构(如 TiDB 全组件、RocketMQ 多 Broker),超出单容器模板时需自定义 YAML 或专业版部署方案。

15.2 高可用(HA)策略

15.2.1 无状态应用(推荐先做多副本)

spec:
  replicas: 3
  strategy:
    type: RollingUpdate
要点说明
前置条件应用无本地磁盘状态;Session 放 Redis
ServiceClusterIP 自动负载均衡
入口Ingress / APISIX 指到 Service
发布应用部署 → 升级 滚动更新;maxUnavailable: 0

15.2.2 有状态组件(单副本现实)

组件商店默认生产 HA 方向
MySQL1 副本 + PVC主从复制(自建第二实例);或云 RDS
Redis1 副本Redis Sentinel / 云缓存
Kafka单容器 KRaft3 Broker 集群(自定义)
RocketMQNameServer + 单 Broker多 Broker、DLedger
Elasticsearchsingle-node3 节点集群 + 副本分片
MinIO单节点分布式 MinIO 4+ 节点

小紫界面:有状态组件先保证 PVC 在 Longhorn 资源池、定期 备份;HA 改造前在测试 Namespace 验证。

15.2.3 控制面与节点

建议
集群kubeadm 多 Master(小紫云计算第 3 章)
存储Longhorn 多副本 策略(集群插件)
调度关键 Pod 用 podAntiAffinity 分散节点

15.3 备份与恢复

15.3.1 Namespace 级备份

管理 → 备份恢复

操作说明
导出选择 dataappmiddleware 等 Namespace
定时配置 cron 表达式(若界面支持)
恢复新集群导入 YAML + 还原 PVC 快照

15.3.2 组件级备份要点

组件备份对象方式
MySQL数据目录 + 逻辑备份mysqldump;PVC 快照
PostgreSQLPGDATApg_dump;快照
MongoDB/data/dbmongodump
RedisRDB/AOFBGSAVE;PVC 快照
MinIOBucket 对象mc mirror 到异地
Jenkins/var/jenkins_homePVC 快照
Gitea/dataPVC 快照
etcd(若自建)快照 API集群灾难恢复

15.3.3 备份验收

#步骤
1备份前写入测试数据(如 MySQL 表 backup_test
2执行 Namespace 导出
3删除 Deployment(保留 PVC 或连卷删)
4从备份恢复
5验证 backup_test 数据仍在

15.4 多环境隔离

15.4.1 Namespace 规划

环境Namespace 示例说明
开发dev-datadev-app低配资源、可频繁重建
测试test-datatest-app与生产同拓扑、脱敏数据
预发staging-app连生产只读库或镜像库
生产dataappmiddleware严格变更流程

15.4.2 配置隔离

方式用法
环境变量每环境 Deployment 不同 MYSQL_HOST
Nacos / ApolloNamespace 或 Cluster 隔离配置
镜像 tagapi:dev / api:prod
Registry同一仓库不同 tag;生产禁止 latest

15.4.3 网络与权限

  • 生产 Namespace NetworkPolicy(若集群启用):仅允许 appdata
  • RBAC:开发账号只读 dev-*;CI 服务账号仅能 kubectl set imageapp

15.4.4 多环境联调剧本

步骤devprod
MySQLmysql.dev-datamysql.data
连接串appdb_devappdb
入口NodePort 直连Ingress + 域名
监控可选Prometheus 告警必开

以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。