我们正在使用Gitlab的CI/CD自动DevOps在gitlab.com上与一个连接的Kubernetes集群。直到最近,我们还在使用Azure,但现在已经决定改用数码海洋。构建/部署管道过去在Azure上运行良好,但是当我现在在我们的新集群上运行它时,我在“生产”作业中得到了这个错误:
$ auto-deploy deploy
secret/production-secret replaced
Deploying new release...
Release "production" does not exist. Installing it now.
Error: validation failed: unable to recognize "": no matches for kind
"Deployment" in version "extensions/v1beta1"
ERROR: Job failed: exit code 1在进行了一些googling搜索之后,我发现了Kubernetes 1.16的发布公告,它指出部署资源已经从扩展/v1beta 1移动到(最终)app/v1,更重要的是,它已经从扩展/*中删除了。
https://kubernetes.io/blog/2019/09/18/kubernetes-1-16-release-announcement/
在数字海洋上使用的Kubernetes版本确实是1.16.2。我不记得我们在Azure上使用的版本,但是从文章的发布日期来看,1.16版本是最近的(2019年9月)。
据我所知,部署算法是在Gitlab的“自动部署”映像(特别是这个剧本 )中实现的,但我看不出我可以在哪里修改正在执行的特定kubectl命令。
我的问题是:我是否正确地假设这个问题是由Gitlab的CI/CD引起的,使用了前1.16符号来自动创建Kubernetes集群上的部署?如果是这样,我如何调整部署脚本以使用app/v1作用域?
发布于 2019-11-12 14:14:11
事实证明,Gitlab Auto DevOps实际上还不支持Kubernetes 1.16。他们是我正在努力。
我想这是可能的分叉舵图表项目,并建立您自己的版本,但我不愿意去做这些长度。
发布于 2019-11-11 16:13:12
在使用circleCI时,我得到了相同的错误,然后发现kubectl版本为1.13,而kubernetes版本为1.15.4,因此请参考这个堆叠溢流柱,并尝试将kubectl版本放置在gitlab中,与当前kubernetes集群显示的版本相同。
你可以做到
kubectl version要获得客户机和服务器版本,只需将gitlab kubectl与更新的版本匹配即可。
发布于 2019-11-11 16:20:17
使用“app/v1”表示“apiVersion”,“Extensionsv1beta1”已经不再推荐部署几个版本了。
https://stackoverflow.com/questions/58800724
复制相似问题