[英]Forward traffic from Kubernetes pod to local server
如何將來自遠程 Kubernetes pod 的流量轉發到本地計算機上運行的服務器? 目的是測試遠程服務器調用在我的本地機器上運行的服務。 我使用kubectl port-forward
將流量從本地服務轉發到遠程服務,但我需要反過來做。
此解決方案適用於 minikube,用於在本地運行 Kubernetes,因此這可能不適用於我。
可能有一種“更多的 K8s”方式,但如果你找不到更好的方法,這里有一個想法 - 使用 ssh。
具體來說,在 pod 上設置並公開 SSH,以便可以從本地計算機訪問它。 然后只需在您的機器上使用 ssh 來創建遠程 ssh 隧道。
例如ssh -R 8080:localhost:80 <exposed-pod-ssh>
會將 pod 的 localhost:8080 轉發到本地機器端口 80。
這是一個非常煩人的任務。
手頭沒有什么特別的,您需要將端口從調制解調器重定向到您的機器。 大多數人都有非固定的公共 ip,所以你需要找到你的公共 ip 地址(你不能搜索“我的 ip 是什么”)並希望它在你的測試之間不會改變。 使用您的公共 ip 地址,您可以嘗試直接從 pod 訪問,例如:
kubectl exec -ti alpine-pod -- curl 150.136.143.228:8080
一些集群不會讓 pod go 從自己的外部運行,因此,最好創建一個沒有選擇器的服務,然后添加指向您的 ip 的端點:
apiVersion: v1
kind: Service
metadata:
name: to-my-home
spec:
ports:
- protocol: TCP
port: 80
targetPort: 8080
然后,添加端點:
apiVersion: v1
kind: Endpoints
metadata:
name: to-my-home
subsets:
- addresses:
- ip: 150.136.143.228
ports:
- port: 8080
現在,如果您在該服務的同一個命名空間中,您可以這樣做:
kubectl exec -ti alpine-pod -- curl to-my-home
一個更好、更簡單的解決方案是使用vagrant share , https://www.vagrantup.com/docs/share ,但您需要一些步驟:
例子:
vagrant init debian/buster64
vagrant login
vagrant up
vagrant share
您可以為此使用網狀 vpn。 像https://tailscale.com/這樣的東西
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.