CCI 实例高可用部署(多AZ容灾)
应用场景
在生产环境中,高可用性(High Availability) 是核心诉求。
- 单实例风险:若工作负载仅部署单实例(Replicas=1),当该实例所在的底层节点发生故障、升级或网络波动时,业务将直接中断。
- 单 AZ 风险:即使部署了多实例,若所有实例都集中在同一个可用区(Availability Zone, AZ),当该 AZ 发生电力或网络故障时,服务依然会面临全量瘫痪的风险。
建议配置 多实例(Replicas > 1) 结合 多可用区(Multi-AZ) 部署。利用 Kubernetes 的调度策略,将 Pod 分散调度到不同的物理区域,实现“同城容灾”。
获取可用区信息
在配置调度策略前,您需要确认当前区域(Region)下 CCI 服务支持的可用区列表(AZ ID),该 ID 将作为 YAML 文件中 values 的参数。您可以通过控制台区域实时查看,也可以参考下表(注:支持的 Region 和 AZ 可能会随业务发展新增,以控制台实际显示为准)。
| Region | AZ |
|---|---|
| 华南-广州/cn-south-1 | cn-south-1e |
| cn-south-1f | |
| cn-south-1g | |
| 华北-北京四/cn-north-4 | cn-north-4a |
| cn-north-4b | |
| cn-north-4g | |
| 华东-上海一/cn-east-3 | cn-east-3a |
| cn-east-3b | |
| cn-east-3c | |
| cn-east-3d | |
| 华东-芜湖/cn-east-4 | cn-east-4a |
| 西南-贵阳一/cn-southwest-2 | cn-southwest-2d |
| 华北三/cn-north-12 | cn-north-12a |
| 华南-广州-友好用户环境/cn-south-4 | cn-south-4a |
配置多 AZ 高可用调度(推荐)
通过配置 Pod 反亲和性(PodAntiAffinity),让调度器自动将 Pod 分散到不同 AZ。
CCI配置示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-ha-cci1
spec:
replicas: 3
template:
metadata:
labels:
app: myapp
spec:
affinity:
podAntiAffinity:
# 软策略:尽量分散到不同 AZ,无法满足时仍可调度
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- myapp
topologyKey: failure-domain.beta.kubernetes.io/zone 配置指定AZ调度
若需将 Pod 强制部署在特定 AZ(例如配合特定 AZ 的云硬盘使用),可使用节点亲和性(NodeAffinity)。
apiVersion: v1
kind: Pod
metadata:
name: nginx-pinned-cci1
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: failure-domain.beta.kubernetes.io/zone
operator: In
values:
- cn-north-4a # 替换为实际 AZ 名称
containers:
- name: nginx
image: nginx:latest