如何找到nodePort的ip地址

ccd*_*ccd 7 kubernetes

我已将我的部署暴露给特定的 NodePort。如果我想连接到集群中的这个部署,我怎样才能找到这个NodePort的IP地址?

Raf*_*zko 10

您可以使用 访问 NodePort 服务<node-ip>:<node-port>

1.检查节点IP

要检查node-ip,您可以执行以下命令:

$ kubectl get nodes -o wide
NAME                                                STATUS   ROLES    AGE     VERSION           INTERNAL-IP     EXTERNAL-IP     OS-IMAGE                             KERNEL-VERSION   CONTAINER-RUNTIME
gke-rafal-test-cluster-default-pool-ef8193e3-1450   Ready    <none>   6m47s   v1.13.11-gke.23   192.168.1.234   35.188.23.46    Container-Optimized OS from Google   4.14.138+        docker://18.9.7
gke-rafal-test-cluster-default-pool-ef8193e3-1bd4   Ready    <none>   6m47s   v1.13.11-gke.23   192.168.1.230   34.67.114.201   Container-Optimized OS from Google   4.14.138+        docker://18.9.7
gke-rafal-test-cluster-default-pool-ef8193e3-q3c4   Ready    <none>   6m47s   v1.13.11-gke.23   192.168.1.228   34.69.230.23    Container-Optimized OS from Google   4.14.138+        docker://18.9.7
Run Code Online (Sandbox Code Playgroud)

任何节点都EXTERNAL-IP可以工作,因此您可以使用35.188.23.464.67.114.20134.69.230.23。没关系。

如果您没有看到任何EXTERNAL-IP,则可能意味着您的 Kubernetes 节点没有外部 IP,因此您无法从外部访问它们。

如果运行 minikube,可以使用minikube ip命令检查节点 ip。如果运行 Docker Desktop Kubernetes,则节点 ip 为localhost

2. 检查节点端口

要检查node-port,您可以执行以下命令。

$ kubectl get svc
NAME                             TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                        AGE
my-release-hazelcast             NodePort       10.208.7.24    <none>        5701:31096/TCP                 4s
Run Code Online (Sandbox Code Playgroud)

<node-port>31096

  • 此处要添加的另一点是:确保您拥有的服务具有“externalTrafficPolicy:Cluster”。这样任何节点的任何 Nodeport 代理都可以连接到适当的 pod。如 [link](https://www.asykim.com/blog/deep-dive-into-kubernetes-external-traffic-policies) 中所述 示例: ` apiVersion: v1 kind: Servicemetadata: name: vncdeployer1 spec: externalName : service_name_here externalTrafficPolicy : 集群.... ....` (2认同)