关于 gke-reliability
gke-reliability 为 GKE 集群和工作负载提供高可用与可靠性配置流程,面向负责生产环境的运维人员。内容包括跨区域分布、探针、优雅关闭和维护窗口等检查与配置。
主要功能
- 01检查集群区域与节点分布
- 02配置 Pod 中断预算
- 03检查容器健康探针
- 04设置拓扑分布与维护窗口
适用场景
- 01减少节点升级期间的服务中断
- 02检查生产工作负载的健康探针
- 03安排 GKE 自动升级时段
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ googlecloudplatform/ gke-mcp --skill gke-reliability安装后在 Claude Code 中输入/gke-reliability确认已加载。
详细介绍
GKE 可靠性技能
此技能提供工作流,帮助你配置 GKE 集群和工作负载,以实现高可用性和可靠性。
工作流
1. 验证集群高可用性
检查集群是区域级集群,还是具有多可用区节点池。
命令:
gcloud container clusters describe <cluster-name> --region <region> --format="json(location, locations)"
如果 location 是一个区域(例如,us-central1),则控制平面为区域级。
如果 locations 有多个条目,则节点分布在多个可用区中。
2. 配置 Pod 中断预算(PDB)
PDB 可确保在自愿中断期间(例如节点升级期间)仍有最低数量的 Pod 可用。
检查现有 PDB:
kubectl get pdb -n <namespace>
清单示例:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: my-app-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: my-app
3. 配置健康探针
确保所有生产容器都配置了存活探针、就绪探针,以及可选的启动探针。
- 就绪探针:确定容器何时准备好开始接收流量。
- 存活探针:确定何时重启容器。
- 启动探针:在应用启动完成前禁用存活和就绪检查。
检查工作负载探针:
kubectl get deployment <app-name> -n <namespace> -o yaml | grep -E "livenessProbe|readinessProbe|startupProbe"
4. 优雅关闭
确保应用能够妥善处理 SIGTERM 信号,并设置适当的 terminationGracePeriodSeconds(默认值为 30s)。
5. 拓扑分布约束
确保 Pod 分布在不同可用区或节点上,以避免相关故障。
清单示例片段:
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: DoNotSchedule # or ScheduleAnyway
labelSelector:
matchLabels:
app: my-app
6. 维护时段和排除项
配置 GKE 执行自动升级的时间,以避开高峰时段。
设置维护时段的命令:
gcloud container clusters update <cluster-name> \
--region <region> \
--maintenance-window-start <start-time> \
--maintenance-window-recurrence "FREQ=DAILY"
最佳实践
- 区域级集群:生产工作负载始终使用区域级集群,以应对可用区故障。
- 为所有容器配置探针:生产 Pod 中的每个容器都应至少配置一个就绪探针。
- 为关键应用配置 PDB:使用 PDB,避免自动节点升级期间出现停机。
- 跨可用区分布:始终使用
topologySpreadConstraints,确保 Pod 分布在不同可用区,即使是在区域级集群中也不例外。 - 安排维护时间:设置维护时段,确保在低流量时段进行升级。
评论
支持 Markdown