SuperAPI AI 工具集

rollout-check

部署与运维

查看项目

更新于 10-15 22:37

技能介绍

用途:对 Kubernetes 部署做只读健康巡检,输出以健康仪表盘表格开头,适合排查滚动更新、Pod 异常与扩缩容问题。

前置条件:必须存在 kubectl,否则立即中止;用 kubectl cluster-info --request-timeout=5s 确认集群可达,不可达则停止并报告;打印当前上下文 kubectl config current-context;若 $ARGUMENTS 含 --context,则后续所有 kubectl 命令都带上该值。

输入解析:第一个位置参数为部署名(必填,缺失即中止);--namespace / -n 可选,默认当前上下文命名空间;--context 可选,默认当前上下文。命名空间与上下文标志分别存为 NS_FLAG、CTX_FLAG 复用。

检查项(尽量并行,记录 stdout/stderr 与退出码):滚动状态 kubectl rollout status deployment/<name> --timeout=10s $NS_FLAG $CTX_FLAG,分类为 complete、progressing 或 failed;Pod 状态 kubectl get pods -l app=<name> -o wide $NS_FLAG $CTX_FLAG,按 Ready、NotReady、Pending、CrashLoopBackOff、Evicted 计数并标记未就绪;近期事件 kubectl get events --sort-by=.lastTimestamp $NS_FLAG $CTX_FLAG,筛选涉及该部署、其 ReplicaSet 或 Pod 的事件,标记 Warning、back-off 与错误;资源用量 kubectl top pods -l app=<name> $NS_FLAG $CTX_FLAG,metrics-server 不可用时跳过并说明,标记 CPU 或内存超过限制 80% 的 Pod;HPA 状态 kubectl get hpa $NS_FLAG $CTX_FLAG,匹配部署名并报告当前与期望副本及扩缩容事件,无 HPA 则报 N/A;仅对 CrashLoopBackOff、Error 或未就绪的 Pod 执行 kubectl logs <pod> --tail=20 $NS_FLAG $CTX_FLAG,崩溃循环时加 --previous,全部健康则跳过。

密钥遮蔽:显示任何 kubectl 输出前,对每行按大小写不敏感匹配 password、secret、token、key、credential,将其值替换为 [REDACTED],使用 sed -E 's/(password|secret|token|key|credential)([=:][[:space:]])[^[:space:],"]/\1\2[REDACTED]/gi'。

输出:先打印健康仪表盘表格,状态值为 OK、WARN、FAIL;非 OK 行在表下按检查名标题给出相关日志或事件摘录,无额外前言或评论。

限制:严格只读,不创建、修改或删除任何资源,可随时重复运行。