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

OpenShift 4.x HOL教程汇总
说明:本文已经在OpenShift 4.14环境中验证

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

  1. 创建测试应用,其中我们会在nodepod-client上通过NodePort的方式访问nodepod-service应用的Service。
$ oc new-project service-nodeport
$ oc new-app openshift/hello-openshift -n service-nodeport
  1. 访问OpenShift控制台,查看nodepod-service的Service配置。在YAML页面找到“type: ClusterIP”部分,改为“type: NodePort”,然后Save保存。此时该Service的Details的页面会显示以下的Service显示信息,其中以下Node Port的2个端口是系统自动生成的。如果需要,可以再通过“Edit YAML”修改Node Port。在这里插入图片描述
  2. 获得任一个worker角色的Node节点的内部访问IP地址
$ oc get nodes --selector="node-role.kubernetes.io/worker"
NAME                 STATUS   ROLES           AGE   VERSION
ip-10-0-152-241.ap-southeast-1.compute.internal   Ready    worker   5d4h   v1.19.0+7070803
ip-10-0-176-189.ap-southeast-1.compute.internal   Ready    worker   5d4h   v1.19.0+7070803
$ oc describe node ip-10-0-152-241.ap-southeast-1.compute.internal | grep InternalIP
InternalIP:  10.0.152.241
  1. 进入一个master节点。
$ oc get nodes --selector="node-role.kubernetes.io/master"
NAME                                              STATUS   ROLES    AGE    VERSION
ip-10-0-130-191.ap-southeast-1.compute.internal   Ready    master   5d4h   v1.19.0+7070803
ip-10-0-164-17.ap-southeast-1.compute.internal    Ready    master   5d4h   v1.19.0+7070803
ip-10-0-193-183.ap-southeast-1.compute.internal   Ready    master   5d4h   v1.19.0+7070803
 
$ oc debug node/$(oc get nodes --selector="node-role.kubernetes.io/master" | awk 'NR==2{print}' | awk '{print $1}')
  1. 在master节点内部通过Node地址+nodePort访问worker节点的Service。
sh-4.4# curl 10.0.152.241:31306
Hello OpenShift!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值