用途:诊断阿里云 ACK 集群中 ALB Ingress 的 reconcile 错误、Warning 事件与配置问题,适用于用户报告 ALB Ingress 异常时。
主要能力:通过 kubectl 连接集群并获取 Ingress/AlbConfig 的 Warning 事件;匹配知识库中 61+ 已知 reconcile 错误模式;对照知识库示例检查 Ingress/AlbConfig 配置;给出含正确 YAML 的修复建议;依据 ALB Ingress Controller 变更日志诊断版本兼容问题;诊断证书匹配问题(ECC 优先于 RSA、扩展优先于默认、关联兼容性、自动发现更新陷阱)。
使用方式:需 kubectl(必需)、python3 3.6+(必需,用于 diagnose.sh 与 cluster_connect.sh 的 JSON 解析)、aliyun-cli(可选,多集群连接用)。凭据走默认凭证链,不直接处理 AK/SK。流程为:先检查环境与集群连通性(kubectl version --client -o json、kubectl cluster-info),多集群可用 bash cluster_connect.sh(支持 --private、--profile),再切换 export KUBECONFIG=~/.kube/ack-{cluster_id}.yaml;随后按命名空间与资源名获取事件,例如 kubectl get events -n {namespace} --field-selector involvedObject.name={ingress_name},involvedObject.kind=Ingress --sort-by=.lastTimestamp;再匹配 diagnostic_tree.json 中的正则模式,按 cause_id 顺序执行诊断命令确认原因,最后输出错误码、根因与修复步骤。
限制与注意:写操作(kubectl edit/patch/apply/delete 或 aliyun CLI 写调用)前必须获得用户明确确认,删除等不可逆操作需警告;AlbConfig listeners 为替换式更新,patch 必须包含全部现有 listener;部分错误为无 Warning 事件的静默失败。所需 RAM 权限见 ram-policies.md。具体版本号、配额与完整错误清单以随附知识库文件为准。