高可用配置
云产品的 deployment 如果需要配置为高可用多副本模式,需要添加反亲和及滚动升级策略。目前,云平台的已提供了一套公共模板来配置反亲和及滚动升级,云产品可在添加了 helm-tookit 的依赖后直接使用。
前置条件
云产品的 requirements.yaml
中添加了 helm-toolkit 依赖:
dependencies:
- name: helm-toolkit
repository: http://charts.easystack.io:8090
version: 5.0.1
云产品 **values.yaml **中定义了滚动升级策略
lifecycle:
upgrades:
deployments:
revision_history: 3
pod_replacement_strategy: RollingUpdate
rolling_update:
max_unavailable: 1
max_surge: 3
配置示例
在云产品的多副本 deployment 中添加如下配置:
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend-api
spec:
replicas: 3
# 滚动升级策略
{{ tuple $envAll | include "helm-toolkit.snippets.kubernetes_upgrades_deployment" | indent 2 }}
template:
metadata:
labels:
# 生成 labels
{{ tuple $envAll "backend-api" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
spec:
affinity:
# 反亲和策略
{{ tuple $envAll "backend-api" "api" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}