目前关于ibmcloud或者k8s的访问方法和构建方法都有很多介绍,但是如何在IBM Cloud上使用ROKS(Red Hat OpenShift on IBM Cloud)环境,以及访问其中pod的介绍仍不足。
因此本次介绍如何通过外部网络访问在IBM Cloud ROKS里的pod。本文的目的是实现任何人都可以通过public Internet在自己的pc访问该pod。
本文的构筑矿建如下图所示。
本文主要有以下三步
step1 注册domain
step2 CIS构建
step3 变更ROKS的pod设定信息
前提
在进行正式的操作前,请确保已完成以下条件
- IBM Cloud和OpenShift都可以正常使用
- 在openshift中已有正常运行中的pod
- 已有IBM Cloud CLI和OC CLI
准备完成后从step1开始
Step1 注册domain▲注册域名需要填信用卡信息并付费使用
在设置CIS之前,必须要先拥有域名,此处介绍使用IBM Cloud的Domain Name Registration来注册域名的方法。(https://cloud.ibm.com/docs/infrastructure/dns/use-domain-reg-screen.html)使用其他的域名注册平台也完全可以。
如下图所示,打开domain注册的地方。
这里我用的是日文系统,所以都是日语显示,但是位置应该是一样的
点击Register之后在输入喜欢的域名即可
Step2 CIS构建拥有了域名之后就可以正常构建CIS了
打开CIS的界面之后,选择需要的plan,这次仅作为练习使用,因此选择免费的plan就好了
接下来会出设置domain的步骤,按照所提示的步骤一步步进行即可
在提示步骤的最后一步当中,会出现new NS records的部分。这里需要返回到注册域名的地方(本教程用的是IBM的Domain Name Registration,因此打开上面用过的界面即可)
然后将new NS records复制到原来的DNS的NS records当中,更新NS code的信息即可。
当上面的步骤都完成,点击保存,返回到CIS界面。Domain的状态由pending变为active之后,则表示设置成功。
接下来,我们来追加DNS record。通过CNAME来实现从www.sample.com到ROKS的访问。
在CIS界面的左侧找到DNS并点击,滑动到页面最下方,可以看到有个DNS record的地方。创建新的CNAME,值为ROKS的Load balancer的host地址。
TIPS
可以通过下面的command确认ROKS的Load Balancer的host地址
$ ibmcloud oc nlb-dns ls -c
到这里没有任何问题的话,CIS的设置全部结束
Step2 变更ROKS的pod设定信息最后介绍从ROKS的Load Balancer到Pod的访问方法。
此处,route在这里对照service的同时,判断访问www.sample.com的request应该发送到拿到pod上,从而实现将request发送到正确的pod上。
接下来的步骤需要全部在CLI上操作,请先在CLI上登陆IBM Cloud和OpenShift。
$ oc get route -n//确认现在host地址 $ oc get route -o yaml -n //确认YAML文件 $ oc edit route -n // 编辑YAML文件
像下图一样,将YAML文件的host改成www.sample.com,即改成自己的域名地址。
最后,打开浏览器尝试访问,如果可以正常显示的话,则所有的设置完成。



