Continuous integration Gitlab CI/CD with Kubernetes 1.16:我的生产作业是否因为Kubernetes版本而失败?

Continuous integration Gitlab CI/CD with Kubernetes 1.16:我的生产作业是否因为Kubernetes版本而失败?,continuous-integration,gitlab,Continuous Integration,Gitlab,我们在Gitlab.com上使用Gitlab的CI/CD Auto DevOps,并连接Kubernetes群集。直到最近,我们还在Azure上运行,但现在已经决定切换到digitalocean。构建/部署管道过去在Azure上运行良好,但现在在我们的新群集上运行时,在“生产”作业期间出现以下错误: 在谷歌搜索之后,我发现了Kubernetes 1.16的发布公告,声明部署资源已从extensions/v1beta1升级到(最终)apps/v1,更重要的是,已从extensions/*中删除:

我们在Gitlab.com上使用Gitlab的CI/CD Auto DevOps,并连接Kubernetes群集。直到最近,我们还在Azure上运行,但现在已经决定切换到digitalocean。构建/部署管道过去在Azure上运行良好,但现在在我们的新群集上运行时,在“生产”作业期间出现以下错误:

在谷歌搜索之后,我发现了Kubernetes 1.16的发布公告,声明部署资源已从extensions/v1beta1升级到(最终)apps/v1,更重要的是,已从extensions/*中删除:

digitalocean上使用的Kubernetes版本实际上是1.16.2。我不记得我们在Azure上使用的版本,但从文章的日期来看,1.16版本是最近发布的(2019年9月)

据我所知,部署算法是在Gitlab的“自动部署”映像中实现的,但我看不出在哪里可以调整正在执行的特定
kubectl
命令


我的问题是:我认为这个问题是由Gitlab的CI/CD使用1.16之前的符号在Kubernetes集群上自动创建部署引起的,这对吗?如果是这样,我如何调整部署脚本以使用apps/v1范围

我在使用circleCI时遇到了同样的错误,然后发现kubectl版本是1.13,而kubernetes版本是1.15.4,因此请参考此内容,尝试将kubectl版本放在gitlab中,与当前kubernetes集群显示的版本相同

你能行

kubectl version

要获得客户端和服务器版本,只需将gitlab kubectl与更新版本进行匹配即可

使用'apps/v1'作为'apiVersion','extensions/v1beta1'现在已经不推荐部署一些版本。

事实证明,gitlab Auto DevOps到目前为止确实不支持Kubernetes 1.16。他们是

另见

我认为有可能完成helm chart项目并构建您自己的版本,但我不愿意这么做


事实证明,Gitlab Auto DevOps到目前为止确实不支持Kubernetes 1.16

这可能会随着(2020年10月)的变化而改变

通过AutoDevOps的增量卷展与Kubernetes 1.16兼容 GKE集群于2020年10月6日自动升级至Kubernetes v1.16。我们 已更新以支持此版本 以使增量卷展栏继续按预期工作。此升级会影响以下用户: 使用定时增量卷展栏持续部署到生产环境,以及自动 部署到暂存,但手动部署到生产

见和

这就带来了,仍然是:

将Auto DevOps升级为Helm 3 Auto DevOps旨在为其用户带来卓越的易用性和安全性最佳实践。到目前为止,Kubernetes环境中的Auto DevOps要求在集群上安装Helm v2。鉴于Tiller的根访问权限,这带来了安全风险。随着Helm v3的推出,不再需要舵柄

当前的GitLab版本最终支持Helm v3,因此您可以放心,您将获得最新的、出色的功能和安全更新。对于GitLab管理的集群,您可以按照我们的文档升级Helm安装。请注意,Helm 2的支持预计将在2020年11月左右结束

见和


与我一样(2021年5月),Helm V2将不支持启动GitLab 14.0(2021年6月)。

CI工具中的kubectl版本是什么?@TusharMahajan如果我对的解释正确,他们使用的是1.13.12谢谢您的回答。恐怕这对我没有什么帮助:要在Gitlab的CI/CD环境中使用更新版本的kubectl,我必须进行分叉、修改和重建,然后将项目的自动构建配置重新连接到该映像。这并不理想,因为这意味着我们的项目将不再使用gitlab的标准工作流,并且需要更多的维护。但是,我自己并没有编写Kubernetes配置文件——这都是Github CI/CD自动完成的,这就是问题所在。您可以构建自己的部署,或者如果这项工作太多,那么您必须等到他们修复后再进行部署。没有这种方法
kubectl version