![](/img/trans.png)
[英]Source IP(recorded at service end, outside cluster) when talking from pod to a service outside Kubernetes cluster?
[英]Kubernetes, access IP outside the cluster
我有一個托管 Kube.netes 集群 (10.225.0.1) 的 corporate.network(10.22. . )。 如何從集群中的 pod 訪問同一網絡中但集群外部的某些 VM?
例如,我有一個 IP 10.22.0.1:30000 的 VM,我需要從 Kube.netes 集群中的 Pod 訪問它。 我試圖創建這樣的服務
apiVersion: v1
kind: Service
metadata:
name: vm-ip
spec:
selector:
app: vm-ip
ports:
- name: vm
protocol: TCP
port: 30000
targetPort: 30000
externalIPs:
- 10.22.0.1
但是當我從 Pod(kubectl exec -it) 執行“curl http://vm-ip:30000 ”時,它會返回“連接被拒絕”錯誤。 但它適用於“google.com”。 訪問外部IP的方式有哪些?
您可以為此創建一個端點。
我們以 go 為例:
在此示例中,我在 my.network 上有一個 http 服務器,地址為 IP 10.128.15.209
,我希望它可以從我的 Kube.netes 集群中的 pod 訪問。
首先是創建一個端點。 這將使我創建一個指向此端點的服務,該服務會將流量重定向到我的外部 http 服務器。
我的端點清單如下所示:
apiVersion: v1
kind: Endpoints
metadata:
name: http-server
subsets:
- addresses:
- ip: 10.128.15.209
ports:
- port: 80
$ kubectl apply -f http-server-endpoint.yaml
endpoints/http-server configured
讓我們創建我們的服務:
apiVersion: v1
kind: Service
metadata:
name: http-server
spec:
ports:
- port: 80
targetPort: 80
$ kubectl apply -f http-server-service.yaml
service/http-server created
檢查我們的服務是否存在並保存它的 clusterIP 以供字母使用:
user@minikube-server:~$$ kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
http-server ClusterIP 10.96.228.220 <none> 80/TCP 30m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 10d
現在是時候驗證我們是否可以從 pod 訪問我們的服務了:
$ kubectl run ubuntu -it --rm=true --restart=Never --image=ubuntu bash
此命令將在 ubuntu pod 中創建並打開 bash session。
在我的例子中,我將安裝 curl 以檢查我是否可以訪問我的 http 服務器。 您可能需要安裝 mysql:
root@ubuntu:/# apt update; apt install -y curl
使用 clusterIP 檢查與我的服務的連接:
root@ubuntu:/# curl 10.128.15.209:80
Hello World!
最后使用服務名稱 (DNS):
root@ubuntu:/# curl http-server
Hello World!
所以,在你的具體情況下,你必須創建這個:
apiVersion: v1
kind: Endpoints
metadata:
name: vm-server
subsets:
- addresses:
- ip: 10.22.0.1
ports:
- port: 30000
---
apiVersion: v1
kind: Service
metadata:
name: vm-server
spec:
ports:
- port: 30000
targetPort: 30000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.