[英]How to expose a service in Kubernetes?
我的組織通過 Rancher 提供容器即服務。 我使用一些 Web 界面啟動了一個 rabbitmq 服務。 服務啟動正常。 我無法通過外部 IP 訪問此服務。
使用 kubectl,我嘗試獲取正在運行的服務列表:
$ kubectl get services -n flash
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rabbitmq-ha ClusterIP XX.XX.X.XXX <none> 15672/TCP,5672/TCP,4369/TCP 46m
rabbitmq-ha-discovery ClusterIP None <none> 15672/TCP,5672/TCP,4369/TCP 46m
如何將“rabbitmq-ha”服務公開給外部詞,以便我可以通過IP 地址:15672 等訪問它? 現在,外部 IP 沒有。 我不確定如何讓 kubernetes 分配一個。
如果你是在支持雲計算環境(AWS,GCP,天青......等等),那么你可以創建類型的服務負載均衡和與外部負載平衡將被提供一個外部IP或者DNS將由您的雲服務提供商進行分配。 這是關於此的文檔。
如果您在本地使用裸機,那么您可以使用提供 LoadBalancer 實現的melatLB 。
除了上述之外,您還可以使用Nodeport Type 服務來公開可在 Kubernetes 集群外部訪問的服務。 這是有關如何執行此操作的指南。
使用 LoadBalancer 類型服務的一個缺點是,將為每個服務提供一個外部負載均衡器,這是昂貴的,作為替代方案,您可以使用入口抽象。 Ingress是由nginx、HAProxy、traefik等很多軟件實現的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.