【发布时间】:2019-04-21 15:10:45
【问题描述】:
我已成功将我的 Kubernetes-Cluster 与 Gitlab 连接起来。我还能够通过 Gitlab UI 安装 Helm (Operations->Kubernetes) 我的问题是,如果我单击 Ingress Gitlab 的“安装”按钮,将创建 Ingress-Controller 所需的所有必要的东西。但是会错过一件事:外部IP。外部 IP 将标记为“?”。
如果我运行这个命令:
kubectl get svc --namespace=gitlab-managed-apps ingress-nginx-ingress- controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}'; echo
它什么也不会显示。就像我不会有一个暴露外部 IP 的负载均衡器。
Kubernetes 集群
我通过kubeadm安装Kubernetes,使用flannel作为CNI
kubectl 版本:
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2"}
在安装 Ingress 之前我必须配置什么。我是否需要一个外部负载均衡器(我的想法:Gitlab 会为我创建该服务)?
再提示:安装后,Nginx-Ingress-Controller Service 的状态会保持在pending状态。原因是它无法检测到外部 IP。我还修改了服务的 yaml 文件,并手动输入了“externalIPs : -External-IP”行。输出结果是它不再处于挂起状态。但我仍然无法通过键入上述内容找到外部 IP命令和 Gitlab 也找不到任何外部 IP
编辑: 安装后会发生这种情况: see picture
编辑2: 通过运行以下命令:
kubectl describe svc ingress-nginx-ingress-controller -n gitlab-managed-apps
我得到以下结果:
在事件日志中,您会看到我将类型切换为“NodePort”一次,然后再切换回“LoadBalancer”,并在 yaml 文件中添加了“externalIPs:-192.168.50.235”行。如您所见,有一个外部 IP,但 Git 没有检测到它。
顺便说一句。我没有使用任何这些云提供商,如 AWS 或 GCE,我发现 LoadBalancer 不是这样工作的。但是必须有一个没有 LoadBalancer 的解决方案。
【问题讨论】:
-
您是如何配置 k8s 集群(云提供商,裸机解决方案)的?你能查一下
kubectl describe svc ingress-nginx-ingress-controller -n gitlab-managed-apps吗? -
@mk_sta 我在 Ubuntu 18.04.1 LTS (Bionic Beaver) 虚拟机上运行 Kubernetes。检查第二张图片以查看说明。
标签: docker kubernetes continuous-integration gitlab nginx-ingress