簡體   English   中英

將 BareMetal(Kubeadm) Kube.netes 集群中的服務暴露給外界

[英]Exposing Service from a BareMetal(Kubeadm) Kubernetes Cluster to outside world

從 BareMetal(Kubeadm) 構建 Kube.netes 集群向外界公開服務。 我正在嘗試訪問我的 Nginx 作為集群外部的服務,以在 web 瀏覽器中獲取 NGINX output。

為此,我為 NGINX 創建了部署和服務,如下所示, 在此處輸入圖像描述

根據我的搜索,發現我們有下面可以暴露給外界

  • 金屬磅
  • 入口 NGINX
  • 一些 HELM 資源

我想知道所有這 3 種或更多方法,以幫助我學習新事物。

GOAL

  • 將 BareMetal(Kubeadm) 構建的 Kube.netes 集群中的服務暴露給外界。
  • 如何讓我的服務擁有自己的公共 IP 以從外部集群訪問?

您需要設置MetalLB以獲得LoadBalancer類型服務的外部 IP 地址。 它將為該服務提供一個 local.network IP 地址。

然后,您可以將端口80和端口443的傳入流量進行端口映射(在路由器中配置)到您的外部服務 IP 地址。

我做了類似的設置,你可以在這里詳細查看: https://developerdiary.me/lets-build-low-budget-aws-at-home/

您需要在集群中部署一個入口 controller ,以便它為您提供一個可以訪問您的應用程序的入口點。 傳統上,在雲原生環境中,它會自動為您提供一個 LoadBalancer,它將讀取您在Ingress object 中定義的規則,並將您的請求路由到適當的服務。

最常用的入口之一 controller 是Nginx 入口 Controller 您可以使用多種方式來部署它(mainfests、helm、operators)。 對於裸機集群,您可以在此處閱讀多種注意事項。

MetalLB 仍處於測試階段,因此您可以選擇是否使用它。 如果您沒有硬性要求將入口 controller 公開為 LoadBalancer,您可以將其公開為 NodePort 服務,該服務可跨集群中的所有節點訪問。 然后,您可以 map DNS 中的 NodePort 服務,以便評估入口規則。

暫無
暫無

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

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