Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes Gitlab Runner可以';t访问Gitlab自托管实例_Kubernetes_Google Compute Engine_Firewall_Gitlab Ci Runner - Fatal编程技术网

Kubernetes Gitlab Runner可以';t访问Gitlab自托管实例

Kubernetes Gitlab Runner可以';t访问Gitlab自托管实例,kubernetes,google-compute-engine,firewall,gitlab-ci-runner,Kubernetes,Google Compute Engine,Firewall,Gitlab Ci Runner,我们在Google计算引擎实例上安装了一个自托管Gitlab Enterprise。此实例受防火墙保护,因此只有我们的员工才能访问服务器 当我们部署Kubernetes集群(使用Gitlab CI)时,运行者无法访问Gitlab,因此不会启动CI作业 我可以手动将Google Kubernetes实例的外部IP地址添加到我们的GitLab防火墙(GCP防火墙允许所选IP范围的所有协议和端口),然后它就会工作。但是,由于Kubernetes实例(以及抢占实例)的数量不断变化,我们每天都必须手动执行

我们在Google计算引擎实例上安装了一个自托管Gitlab Enterprise。此实例受防火墙保护,因此只有我们的员工才能访问服务器

当我们部署Kubernetes集群(使用Gitlab CI)时,运行者无法访问Gitlab,因此不会启动CI作业

我可以手动将Google Kubernetes实例的外部IP地址添加到我们的GitLab防火墙(GCP防火墙允许所选IP范围的所有协议和端口),然后它就会工作。但是,由于Kubernetes实例(以及抢占实例)的数量不断变化,我们每天都必须手动执行此操作

这不是一个最佳情况。我已经尝试添加内部IP范围(10.132.0.0/20、10.0.0.0/8、10.56.0.0/14),但这不是解决方案。如果不指定确切的实例IP,运行程序仍然无法访问gitlab服务器


我错过了什么

GKE节点在GCE平台中显示为VM实例。它们由主节点管理,如果它们被认为不健康,则可以(由kube控制器)删除它们。一旦删除,它们将被重新创建。因此,IP地址是短暂的。使用每个VM实例的外部IP地址将是非常具有挑战性的,因为IP地址一直在变化。这不是一个可行的解决办法

一个解决方法是充分利用一个新的解决方案。来自GKE节点的所有出站流量将路由到充当NAT网关的特定VM实例。然后,您将只有1个静态IP地址,这是的外部IP地址

然后,您将拥有一个可以添加到防火墙规则中的静态IP地址