GitLab Runner 在仅具有内部网络的 VM 上



我正在Google Cloud中的GKE集群上运行来自官方jetstack掌舵图的GitLab实例。

我想将仅具有内部网络访问权限的 Windows 虚拟机添加到我的 VPC 网络。

通常,您必须针对GitLab的https地址注册GitLab运行器,这在内部网络中是不可能的。有没有办法通过内部网络针对 GitLab 实例注册 GitLab 运行器?

GitLab 实例通过nginx-ingress控制器发布其 https 资源,该控制器也在该 GKE 集群上运行。

有没有办法注册 gitlab-unicorn pod 及其在端口8080上侦听的内部 IP ?

提前感谢!

有两个选项:

  • clone_url如果运行器有权访问Gitlab实例,但它的名称与解析的名称不同
  • ssh-tunnel如果运行器无法直接访问Gitlab实例

clone_url

如果可从内部网络访问gitlab,则可以使用clone_url选项

请参阅文档:

clone_url的工作原理

如果 GitLab 实例暴露给运行器无法使用的 URL,则可以配置clone_url。例如;GitLab 暴露在https://gitlab.example.com,但由于防火墙设置,运行器无法访问它。如果运行器可以到达192.168.1.23上的节点,则clone_url应设置为"http://192.168.1.23

只有设置了clone_url,运行器才会以http://gitlab-ci-token:s3cr3tt0k3n@192.168.1.23/namespace/project.git的形式构造克隆 URL

ssh-tunnel

如果您的 Gitlab 实例没有任何可用地址,您可以为其设置ssh-tunnel

SSH

隧道是一种通过加密的 SSH 连接传输任意网络数据的方法。它可用于向旧版应用程序添加加密。它还可用于实施VPN(虚拟专用网络(和跨防火墙访问内部网服务。

ssh -L 8080:gitlab.yourinstance.com:80 gw.yourgateway.com

然后你可以把gw.yourgateway.com:8080当作你的clone_url

最新更新