[英]Access the Kubernetes cluster/node from outside
我是 kubernetes 的新手。 我創建了一個帶有 2 個節點的 kubernetes 數據庫集群。 我可以從像 dbeaver 這樣的瘦客戶端訪問那些 kubernetes pod 來檢查數據。 但我無法從外部訪問那些 kubernetes 節點。 我目前正在嘗試運行一個胖客戶端,它將數據加載到 kubernetes 上的集群中。
kubectl describe svc <svc>
我可以看到分配給服務的 cluster-Ip。 我的服務類型是負載均衡器。 我嘗試使用它,但仍然無法連接。 我讀到了使用 nodeport 但沒有任何 IP 地址如何訪問它
那么從外部連接任何節點或集群的最佳方式是什么。
先感謝您
問候
@KrishnaChaurasia 是對的,但我想在官方文檔的幫助下更詳細地解釋它。
我強烈建議通過以下來源:
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
通過公共 IP 訪問服務。
使用類型為NodePort
或LoadBalancer
的服務以使該服務可在集群外訪問。 請參閱服務和kubectl 公開文檔。
根據您的集群環境,這可能只是將服務公開給您的公司網絡,也可能將其公開給互聯網。 考慮暴露的服務是否安全。 它是否進行自己的身份驗證?
將 pod 放在服務后面。 要從一組副本中訪問一個特定的 pod,例如進行調試,請在 pod 上放置一個唯一的 label 並創建一個選擇此 label 的新服務。
在大多數情況下,應用程序開發人員不需要通過其 nodeIP 直接訪問節點。
這些將幫助您更好地理解不同服務類型的概念,以及如何從集群外部公開和訪問它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.