如何为私有GKE集群启用Gitlab CI / CD?

时间:2020-04-01 13:53:55

标签: kubernetes continuous-integration gitlab google-kubernetes-engine

我想设置Gitlab CI / CD的AutoDevops功能,为此,我试图将现有的kubernetes集群设置为我的环境。

但是,Gitlab需要使用Kubernetes Master API URL来访问Kubernetes API。 Kubernetes 公开了多个API,我们希望所有这些API都具有通用的“基本” URL, 例如https://kubernetes.example.com,而不是https://kubernetes.example.com/api/v1。 我们将通过运行以下命令获取API URL:

kubectl cluster-info | grep 'Kubernetes master' | awk '/http/ {print $NF}

返回一个https://

就我而言,我有一个私人IP,https://172.10.1.x

没有任何文档可帮助为私有GKE集群设置gitlab CI。

如何在正在运行的VM实例或pod的服务IP的帮助下将gitlab设置为访问我的kubernetes主服务器?或者,如果有解决方案/解决方法的建议,请提供帮助。

Add Existing GKE cluster as Environment

1 个答案:

答案 0 :(得分:0)

现在(2020年9月)有替代方案,但它不是免费的(仅限GitLab.com Premium / Ultimate)

请参见GitLab 13.4

介绍GitLab Kubernetes代理

GitLab的Kubernetes集成长期以来使无需手动设置即可部署到Kubernetes集群。许多用户都喜欢易用性,而其他用户则遇到了一些挑战。

当前的集成要求您的集群对Internet开放,以便GitLab访问它。对于许多组织来说,这是不可能的,因为他们必须出于安全性,合规性或监管目的而锁定群集访问。要解决这些限制,用户需要在GitLab之上创建自定义工具,否则他们将无法使用该功能。

今天,我们发布了GitLab Kubernetes代理:一种部署到Kubernetes集群的新方法。该代理在您的群集中运行,因此您无需将其打开到互联网。代理通过从GitLab提取新更改来协调部署,而不是GitLab将更新推送到集群。无论您使用哪种GitOps方法,GitLab都可以满足您的要求。

请注意,这是该代理的第一个版本。当前,GitLab Kubernetes代理具有配置驱动的设置,并可以通过代码进行部署管理。尚不支持某些现有的Kubernetes集成功能,例如Deploy Boards和GitLab Managed Apps。 Our vision将最终实现这些功能,并提供与代理相关的新的,注重安全性和合规性的集成。

https://about.gitlab.com/images/13_4/gitops-header.png-介绍GitLab Kubernetes代理

请参见DocumentationIssue


另请参阅GitLab 13.5(2020年10月)

通过Omnibus GitLab安装GitLab Kubernetes代理

上个月,我们为随Helm安装的自我管理的GitLab实例引入了GitLab Kubernetes Agent

此版本增加了对official Linux package的支持。

在这种新的Kubernetes集成中,代理通过从GitLab提取新更改来协调部署,而不是GitLab将更新推送到您的集群。

您可以了解有关how the Kubernetes Agent works nowcheck out our vision的更多信息,以了解库存情况。

请参见DocumentationIssue