适用范围:Kubernetes + 公有云。统一命名是自动化和可观测性的前提。
一、环境划分
| 环境 | 用途 | 访问 | 数据 |
|---|---|---|---|
| dev | 开发自测 | 内网 | mock/脱敏 |
| test | 集成测试 | 内网 | 脱敏 |
| staging | 预发/准生产 | 受限 | 近生产(脱敏) |
| prod | 生产 | 严格 RBAC | 真实 |
- 四套环境彼此网络隔离;prod 仅允许来自 CI/CD(GitOps)的变更,禁止个人直连改。
- 配置按环境分离:ConfigMap/Secret 按 namespace 隔离,敏感值走 External Secrets(云 KMS)。
二、资源命名约定
格式:<业务线>-<服务名>-<环境>
- 示例:
shop-order-prod、shop-user-test - K8s namespace:
{业务线}-{环境},如shop-prod、shop-test - 镜像 tag:优先用 Git Commit SHA(不可变),禁止用
latest - 域名:
{服务}.{环境}.example.com,如api.prod.example.com;prod 对外用api.example.com
三、K8s 对象约定
- Deployment 名称 = 服务名;labels 必带:
app、env、team、version - 资源请求/限制必填(防资源打架):
requests.cpu/memory+limits - 健康检查:必配
livenessProbe+readinessProbe+startupProbe - 使用 HPA(基于 CPU/自定义指标)做弹性;设
resourceQuota限制 namespace 总量
四、标签标准(可观测性关联靠它)
所有资源统一打标,便于监控/日志/链路聚合:
yaml
labels:
app: order-service
env: prod
team: shop
version: v1.4.2
日志/指标/链路也必须带 service、env、team 字段,实现跨系统关联。
五、目录结构(Git 仓)
infra/ # Terraform 云资源
charts/ 或 k8s/ # Helm/Kustomize 部署清单(按服务分目录)
ci/ # 流水线定义
docs/ # 本套运维文档
runbooks/ # 各服务 Runbook
六、账号与权限
- 云账号:按角色建子账号(RAM/ IAM),禁止共用主账号密钥。
- K8s:RBAC 按 namespace/角色授权,prod 仅平台工程师 + CI 机器人有写权限。
- 详见
SOP-10 权限与账号管理。