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