OpenShift 4 之通过Service的nodePort访问应用

在OpenShift中,通常我们是根据Service生成Route对象来为外部客户端提供一个访问应用的地址。不过也可以不通过Route,而是直接在Node上开一个nodePort来访问Service(虽然这种方式一般不在生产环境中使用)。这种方式的实现机制如下图,当为Service定义了nodePort后,Openshift会在每个对应Node打开nodePort端口(如下图30001),这样当客户端无论访问那个节点的30001端口就都可以访问到Service了(如果在node前再加一层外部负载均衡,就可以实现节点访问负载均衡了)。
OpenShift 4 之通过Service的nodePort访问应用_第1张图片
下面我们在OpenShift上实现这种配置。

  1. 创建测试应用。
$ oc new-project service-nodeport
$ oc new-app openshift/hello-openshift
  1. 访问OpenShift控制台,查看hello-openshift的Service配置。在YAML页面找到“type: ClusterIP”部分,改为“type: NodePort”,然后Save保存。此时Service配置会显示以下的Service显示信息,其中以下Node Port的2个端口是系统自动生成的。如果需要,可以再通过“Edit YAML”修改Node Port。
    OpenShift 4 之通过Service的nodePort访问应用_第2张图片
  2. 获得任一个Worker角色的Node节点IP地址
$ oc get node
NAME                 STATUS   ROLES           AGE   VERSION
crc-2n9vw-master-0   Ready    master,worker   18d   v1.14.6+6ac6aa4b0
$ oc describe node crc-2n9vw-master-0 | grep InternalIP
InternalIP:  192.168.130.11
  1. 通过Node地址+nodePort访问Service即可。
$ curl 192.168.130.11:32409
Hello OpenShift!

你可能感兴趣的:(OpenShift,4,网络)