DigitalOcean上Github CI/CD的Kubernetes流水线失败:资源无法找到
以下是几种可能的原因:
目标K8s集群已被删除或重命名
流水线中指定的集群名称k8s-***-production可能已被误删除,或者有人修改了集群名称但未同步更新流水线配置。登录DigitalOcean控制台,确认该集群是否存在、名称是否与流水线内的配置一致。DIGITALOCEAN_ACCESS_TOKEN失效
即使未修改流水线,访问令牌可能因过期、被手动撤销,或者存储的密钥值被误改而失效。前往DigitalOcean的API令牌管理页面,检查该token的状态及权限范围,确保它拥有访问目标K8s集群的权限。doctl版本兼容性问题
当前使用的digitalocean/action-doctl@v2会拉取最新版doctl客户端,若DigitalOcean API有版本更新,旧版doctl可能无法正确识别集群资源。可以尝试指定具体的doctl版本(例如digitalocean/action-doctl@v2.20.0),或升级action到最新稳定版后重试。kubeconfig生成时集群不可访问
执行doctl kubernetes cluster kubeconfig save命令时,如果集群本身处于不可用状态,或doctl无法通过API查询到集群信息,就会抛出“资源未找到”错误。可以在本地使用相同的token执行该命令,验证是否能正常生成kubeconfig,以此区分是流水线环境问题还是集群本身的问题。DigitalOcean API临时故障
偶尔DigitalOcean的API服务会出现短暂异常,导致无法正常查询集群资源。可以查看DigitalOcean官方状态页面确认是否有相关故障,或间隔一段时间后重新触发流水线。
内容的提问来源于stack exchange,提问作者Nick

