首页 文章

GKE私有集群中的GitLab CI无法连接到master

提问于
浏览
0

到目前为止,我们一直在为所有工作负载使用GKE公共集群 . 我们创建了第二个私有集群(仍然是GKE),具有更高的安全性和可用性(旧的是单区域,新区域是区域集群) . 我们使用Gitlab.com作为代码,但在集群中使用自托管的Gitlab CI runner .

运行者在公共集群上正常运行,所有工作负载都成功完成 . 但是,在专用群集上,thr CI的所有kubectl命令都会失败 Unable to connect to the server: dial tcp <IP>:443: i/o timeout error . CI配置未更改 - 相同的基本映像,仍使用具有特定于CI的服务帐户的gcloud SDK对群集进行身份验证 .

两个群集都启用了主授权网络,并且只设置了我们的办公室IP . 可以从公共IP访问Master . 身份验证成功,两者都禁用客户端证书和基本身份验证 . 配置了 Cloud NAT,节点可以访问Internet(可以提取容器映像,Gitlab CI可以连接等) .

我错过了一些重要配置吗?还有什么我应该看的?

1 回答

  • 2

    我找到了解决问题的方法,但我不完全确定原因 .

    我使用了 gcloud container clusters get-credentials [CLUSTER_NAME] ,它给出了主人的公共 endpoints . 但是由于某种原因,集群内无法访问 - 所以我认为它需要将NAT的公共IP(不是静态提供的)添加到授权网络 .

    我添加了--internal-ip标志,它给出了集群的内部IP地址 . CI现在可以连接到主服务器 .

    资料来源:https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl#internal_ip

    tl; dr - gcloud container clusters get-credentials --internal-ip [CLUSTER_NAME]

相关问题