升级GKE集群至1.26.2-gke.1000后Cloud Build部署失败求助
问题解决方法
根源分析
GKE 1.26.2-gke.1000基于Kubernetes 1.26版本,该版本对部分API资源做了废弃/升级调整:app.k8s.io/v1beta1版本的Application资源已不再兼容原有部分字段,你遇到的strict decoding error就是因为旧API版本不识别spec.selector.matchLabels.app.kubernetes.io/name这个写法。
具体修复步骤
- 调整Application资源的API版本:将deploy.yaml中
Application资源的apiVersion从app.k8s.io/v1beta1改为app.k8s.io/v1。Kubernetes 1.26中Application的稳定版本是v1,v1beta1已被废弃。 - 修正spec.selector的语法:确保
matchLabels下的标签是标准键值对格式,正确写法示例:apiVersion: app.k8s.io/v1 kind: Application metadata: name: your-app spec: selector: matchLabels: app.kubernetes.io/name: your-app-name # 其他配置... - 同步kubectl版本:如果你的Cloud Build流程使用的kubectl版本过低,会导致无法正确处理新API版本。需将kubectl升级到与GKE集群匹配的1.26.x版本。
- 验证API兼容性:在集群上执行
kubectl api-resources | grep Application,确认当前集群支持的ApplicationAPI版本,确保配置文件使用的版本在列表中。
内容的提问来源于stack exchange,提问作者Ahmed Almulki
相关产品推荐
相关产品推荐

