簡體   English   中英

直接從同一網絡中的機器訪問Kubernetes Pod

[英]Accessing kubernetes pod directly from a machine in the same network

我在同一網絡上有4台服務器;

  • 10.0.0.10:Kubernetes大師
  • 10.0.0.11:Kubernetes節點1
  • 10.0.0.12:Kubernetes節點2
  • 10.0.0.20:普通ubuntu服務器(未安裝Kubernetes)

我按照https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/中的說明設置了kubernetes集群,並使用Calico作為網絡提供商。

我可以通過以下命令成功運行Pod(我使用帶有ssh訪問權限的Ubuntu docker映像作為示例)

kubectl run ubuntupod --image=rastasheep/ubuntu-sshd:16.04

並可以使用kubectl getkubectl describe查看此容器的IP地址(在這種情況下,容器的IP為192.168.65.74。)

然后,我確認已啟用以下連接

  • kubernetes主節點/節點(10.0.0.10〜10.0.0.12)-> pod(192.168.65.74)
  • pod(192.168.65.74)-> kubernetes主節點/節點(10.0.0.10〜10.0.0.12)
  • pod(192.168.65.74)->普通ubuntu服務器(10.0.0.20)

但是,我沒有建立以下聯系,我想問人們該怎么做。

  • 普通的ubuntu服務器(10.0.0.20)-> pod(192.168.65.74)

我嘗試將路由表添加到ubuntu服務器(10.0.0.20),希望將kubernetes主節點用作路由器,但沒有成功;

sudo route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.0.0.10

我懷疑Kubernetes主機中的iptables有問題,但是我不知道該怎么辦。

有人可以幫我這個忙。

順便說一句,我知道我想做的事情可能與kubernetes或docker的基本原理有所不同。 也許我應該使用kubernetes的Service機制,但是在Pod和實際服務器之間進行訪問時,我需要這種透明性。

在Pod和實際服務器之間進行訪問時,我需要這種透明性。

然后,您想要的要么是您所說的但由於某種原因而被拒絕的Service ,其type: NodePort -或type: LoadBalancer如果您的設置允許)-將在所有與其selector:匹配的type: NodePort循環移動。 ..

kubectl exec -it $the_pod_name -- bash -il在Pod上執行命令(即:如果您的目標只是“連接”到Pod在其上運行命令,而不是“網絡連接”)。 。

kubectl port-forward $the_pod_name ${local_port_number}:${pod_port_number}將允許您有效地在直接連接到Pod的k8s網絡中鑽一個洞,但要注意的是,連接僅在kubectl運行時有效(並且當然是Pod的壽命)

只是極端的清晰度,軟件定義的網絡,如印花布是傳統上用於通信的集群 ,並且最好是認為任何IP地址為“假”的人的。 因此,我從不希望僅更新任何內容上的路由表就可以將“實際”網絡堆棧連接到Calico的“虛構”網絡堆棧。 用一小撮鹽來回答這個問題,因為我從未專門使用過Calico,但毫無疑問,法蘭絨的表現方式就是這樣。

您可以嘗試在ubuntu服務器上運行kube-proxy組件,它將創建訪問k8s服務和pod所需的iptables規則

借助Calico,您可以使用BGP與網絡結構(甚至只有一台主機)對等地建立集群,然后將路由分發到您的Pod,從而允許從外部主機直接訪問Pod。 以下是一些文檔鏈接,可以幫助您https://docs.projectcalico.org/v2.5/usage/external-connectivity#inbound-connectivityhttps://docs.projectcalico.org/v2.5/用法/配置/ bgp

一種在主機上實現此目標的方法(可能很簡單)是在配置了主機的主機上運行calico / node,以便calico / node可以訪問您的Calico數據存儲區並有效地成為“ Calico集群”的一部分,但不成為Kuberentes集群的一部分。

暫無
暫無

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

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