簡體   English   中英

K8S 裸機 nginx-ingress-controller

[英]K8S baremetal nginx-ingress-controller

操作系統:RHEL7 | k8s 版本:1.12/13 | kubespray | 裸機

我部署了一個標准的 kubespray 裸機集群,我試圖了解部署 nginx-ingress-controller 的最簡單推薦方法是什么,這將允許我部署簡單的服務。 沒有提供負載平衡器。 我希望我的 MASTER 公共 IP 作為我的服務的端點。

抬頭

Github k8s ingress-nginx 建議將NodePort 服務作為“強制性”步驟,這似乎不足以使其與 kubespray 的ingress_controller 一起工作

我能夠通過kubectl edit svc使其工作強制 LoadBalancer 服務類型並將 externalIP 值設置為 MASTER 公共 IP 到 nginx-ingress-controller 中,但由於缺少負載均衡器本身,這似乎不是一個正確的解決方案。

使用 helm chart 的類似結果:

helm install -n ingress-nginx stable/nginx-ingress --set controller.service.externalIPs[0]="MASTER PUBLIC IP"

我能夠通過 kubectl edit svc 使其工作強制 LoadBalancer 服務類型並將 externalIP 值設置為 MASTER 公共 IP 到 nginx-ingress-controller 中,但由於缺少負載均衡器本身,這似乎不是一個正確的解決方案。

正確,這不是LoadBalancer的目的。 它旨在為 AWS、GCP 或 Azure 等雲提供商或具有某種 API 的負載均衡器配置負載均衡器,以便 kube-controller-manager 可以與之交互。 如果您查看 kube-controller-manager 日志,您應該會看到一些錯誤。 你讓它工作的方式顯然是一個黑客,但我認為它有效。

實現這一點的標准方法是使用NodePort服務,並在您的主服務器上使用任何代理/負載均衡器(即 nginx 或 haproxy)將流量發送到 NodePort。 請注意,我也不推薦 master 來處理您的服務,因為它已經處理了一些關鍵的 Kubernetes pod,如 kube-controller-manager、kube-apiserver、kube-scheduler 等。

唯一的例外是MetalLB ,您可以將其與 LoadBalancer 服務類型一起使用。 請記住,在撰寫本文時,該項目還處於早期階段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM