簡體   English   中英

從外部訪問 Kubernetes 集群/節點

[英]Access the Kubernetes cluster/node from outside

我是 kubernetes 的新手。 我創建了一個帶有 2 個節點的 kubernetes 數據庫集群。 我可以從像 dbeaver 這樣的瘦客戶端訪問那些 kubernetes pod 來檢查數據。 但我無法從外部訪問那些 kubernetes 節點。 我目前正在嘗試運行一個胖客戶端,它將數據加載到 kubernetes 上的集群中。

kubectl describe svc <svc>

我可以看到分配給服務的 cluster-Ip。 我的服務類型是負載均衡器。 我嘗試使用它,但仍然無法連接。 我讀到了使用 nodeport 但沒有任何 IP 地址如何訪問它

那么從外部連接任何節點或集群的最佳方式是什么。

先感謝您

問候

@KrishnaChaurasia 是對的,但我想在官方文檔的幫助下更詳細地解釋它。

我強烈建議通過以下來源:

  1. NodePort 類型服務:在 static 端口( NodePort )上公開每個節點的 IP 上的服務。 自動創建NodePort服務路由到的ClusterIP服務。 您可以通過請求<NodeIP>:<NodePort>從集群外部聯系NodePort服務。 以下是NodePort服務的示例:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  selector:
    app: MyApp
  ports:
      # By default and for convenience, the `targetPort` is set to the same value as the `port` field.
    - port: 80
      targetPort: 80
      # Optional field
      # By default and for convenience, the Kubernetes control plane will allocate a port from a range (default: 30000-32767)
      nodePort: 30007
  1. 訪問集群上運行的服務:您有多種選項可以從集群外部連接到節點、pod 和服務:
  • 通過公共 IP 訪問服務。

  • 使用類型為NodePortLoadBalancer的服務以使該服務可在集群外訪問。 請參閱服務kubectl 公開文檔。

  • 根據您的集群環境,這可能只是將服務公開給您的公司網絡,也可能將其公開給互聯網。 考慮暴露的服務是否安全。 它是否進行自己的身份驗證?

  • 將 pod 放在服務后面。 要從一組副本中訪問一個特定的 pod,例如進行調試,請在 pod 上放置一個唯一的 label 並創建一個選擇此 label 的新服務。

  • 在大多數情況下,應用程序開發人員不需要通過其 nodeIP 直接訪問節點。

  1. 補充示例: 使用服務訪問集群中的應用程序:此頁面顯示如何創建 Kubernetes 服務 object,外部客戶端可以使用該服務訪問集群中運行的應用程序。

這些將幫助您更好地理解不同服務類型的概念,以及如何從集群外部公開和訪問它們。

暫無
暫無

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

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