使用nodeport

时间:2018-09-07 19:26:04

标签: kubernetes kubernetes-service

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

 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上的应用程序mynodejsapp?

当我获取一个-o宽的节点时,这就是我所看到的,

$ 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

任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

  

请问如何访问群集ip上的应用程序mynodejsapp?

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

  • 要从群集的外部访问mynodejsapp服务,您需要将端口nodes(和{{1} }会将其路由到31209服务)
  • 要从群集内的访问kube-proxy服务,这意味着要从在同一群集上运行的另一个Pod中,您需要定位clusterIP mynodejsapp(或者运行{{1 }}您可以直接使用服务名称mynodejsapp

the official documentation中所述,clusterIP与服务绑定,然后通过kube-dns从服务名称解析为clusterIP。简而言之,您只能在运行在该群集上的Pod中使用clusterIP(与服务相同)。

关于通过NodePort在外部公开服务,您还可以在the official documentation

中找到更多信息。