使用nodeport访问kubernetes上的应用程序

问题描述 投票:0回答:1

亲爱的,我已经部署了一个样本服务,例如:

 kubectl get svc
NAME          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes    ClusterIP   10.233.0.1     <none>        443/TCP          1d
mynodejsapp   NodePort    10.233.2.225   <none>        3000:31209/TCP   43s

请问如何在集群ip上访问app mynodejsapp?

当我做了一个获取节点-o wide时,这就是我在下面看到的,

$ kubectl get nodes -o wide
NAME                    STATUS    ROLES     AGE       VERSION            EXTERNAL-IP   OS-IMAGE                  KERNEL-VERSION                   CONTAINER-RUNTIME
controlplane-node-001   Ready     master    2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1
controlplane-node-002   Ready     master    2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1
controlplane-node-003   Ready     master    2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1
default-node-001        Ready     node      2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1
default-node-002        Ready     node      2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1

任何帮助。谢谢。

kubernetes kubernetes-service
1个回答
1
投票

请问如何在集群ip上访问app mynodejsapp?

现在,直接回答有关您的服务概述的问题:

  • 要从群集外部访问mynodejsapp服务,您需要在nodes端口上定位任何31209的IP(并且kube-proxy会将其路由到mynodejsapp服务)
  • 要从群集中访问mynodejsapp服务,意味着从同一群集上运行的另一个pod,您需要定位clusterIP 10.233.2.225:3000(或者运行kube-dns,您可以直接使用服务名称mynodejsapp:3000

正如the official documentation中详述的,clusterIP与服务相关联,而后者又通过kube-dns从服务名称解析为clusterIP。简而言之,您只能在所述群集上运行的pod中使用clusterIP(与服务相同)。

至于通过NodePort在外部公开服务,您可以在the official documentation中找到更多信息

© www.soinside.com 2019 - 2024. All rights reserved.