虽然目前关于构建Nginx的web server文章有很多,但是在ROKS(Red Hat OpenShift on IBM Cloud)上构建的文章却寥寥无几。因此,这次介绍从0开始构建IBM Cloud VPC环境,到在ROKS上创建cluster,再在此基础上部署Nginx Pod 的方法。
本篇文章是针对没有任何IBM Cloud及container的使用经验的初学者,完全没有经验也OK
需要注意的是本文截图是日语系统界面,因此可能会有稍许不同,但内容和步骤都是一样的
本教程一共分为四步:
Step1 创建VPC环境
Step2 构建ROKS
Step3 登录ROKS cluster
Step4 创建Nginx serve并访问
在开始之前请确认以下配置已经完成
- IBM Cloud账号
- IBM Cloud CLI https://cloud.ibm.com/docs/cli?topic=cli-getting-started
- OC CLI:Getting started with the OpenShift CLI - OpenShift CLI (oc) | CLI tools | OpenShift Container Platform 4.7
- 下方的command已经被下载
$ install vpc-infrastructure $ ibmcloud plugin install container-service $ ibmcloud plugin install container-registry $ ibmcloud plugin install observe-service
本篇文章所示的内容均在Windows10环境下完成
Step1 创建VPC环境
首先,登录到IBM Cloud。
此处介绍通过API key登录的方法,其他的方法也同样可以正常登录到IBM Cloud,请选择自己喜欢的方法登录。
$ ibmcloud login --apikey -g-r jp-tok 例:$ ibmcloud login --apikey -g rg-common -r jp-tok API エンドポイント: https://cloud.ibm.com 認証中です... OK
Tips:
请参考下方链接了解获取API key的方法
IBM Docs
在step1当中,需要设置vpc、subnet、public gateway(ROKS用security group)、cloud object storage(保存data)、四个service,接下来进行逐一介绍。
这次将在一个IBM Cloud当中设置3个zone,并在每个zone当中设置一个ROKS的subnethepublic gateway。环境配置的架构如下图所示。
具体的配置信息如下表所示
| service名称 | 数量 | 设置 |
|---|---|---|
| IBM Cloud: Zone | 3 | jp-tok-1, jp-tok-2, jp-tok-3 (region: Japan) |
| IBM Cloud: recourse group | 1 | rg-common |
| VPC | 1 | vpc-common |
| Subnet | 3 | subnet-common1, subnet-common-2, subnet-common-3 |
| Public Gateway | 3 | pgw-common-tok1, pgw-common-tok2, pgw-common-tok3 |
| IBM Cloud Object Storage | 1 | objectstorage-common |
##创建vpc $ ibmcloud is vpc-create1.2 subnet例:$ ibmcloud is vpc-create vpc-common
##创建subnet $ ibmcloud is subnet-create--zone jp-tok-1 --ipv4-address-count ADDR_COUNT --resource-group-name 例:$ ibmcloud is subnet-create subnet-common1 r022-xxxxxxx --zone jp-tok-1 --ipv4-address-count 256 --resource-group-name rg-common
因为需要3个subnet,所以重复输入上方command分别构建3个subnet
1.3 public gateway接下来继续构建public gateway。有两个方法可以创建public gateway
方法一: 通过GUI(IBM Cloud console画面)直接创建。
方法二: 通过CLI,输入command创建。
这里介绍通过CLI创建的方法。
##创建public gateway $ ibmcloud is public-gateway-create例:$ ibmcloud is public-gateway-create pgw-common-tok1 r022-xxxxxxxx jp-tok-1 ##将创建好的public gateway与subnet链接起来 $ ibmcloud is subnet-update --public-gateway-id 例:$ ibmcloud is subnet-update 02f7-xxxxxx --public-gateway-id r022-393xxxxxxxxxxxxx
存在3个subnet,所以重复上面command创建三次
1.4 object storage最后来创建object storage。通过GUI来创建的话非常的简单,因此这里介绍直接在IBM Cloud页面上创建的方法。
点击右上方的「catalogue」→输入「object storage」→选择「object storage」
这里的object sotrage是为了保存VPC环境里ROKS的数据,使用light plan的话不能满足这一目的,因此最低最低也得选择standard plan。
Step2 创建ROKS
在GUI上创建即可。点击右上方的「catalogue」→输入「openshift」→选择「Red Hat OpenShift on IBM Cloud」
ROKS的配置信息如下表
| service名称 | 设置 |
|---|---|
| cluster name | ROKS-common |
| Infrastructure | VPC |
| Cloud object storage | objectstorage-common |
| Zone | jp-tok-1, jp-tok-2, jp-tok-3 |
| Worker pool | 1 |
| Subnet | subnet-common1, subnet-common-2, subnet-common-3 |
| Security Group | default SG |
设置完成之后点击右下方保存即可。
Step3 登录ROKS cluster接下来尝试通过CLI登录到创建好的ROKS cluster里面。
登录的方法有以下两种
方法一,在IBM Cloud的IAM当中创建API key,通过API key来登录到ROKS cluster(参考资料IBM Cloud Docs)
##使用API key登录 $ oc login -u apikey -p
方法二、在openshift web console中复制登录command,粘贴到CLI当中。
如下方图,选择「OpenShift Web console」→右上的「IAM#ACCOUNT_NAME」→「Copy Login Command」→「Display Token」→「Log in with this token」,即复制了登录用command。粘贴到CLI当中,回车。
按照下图的command顺序
# amdin权限获取kubeconfig $ ibmcloud oc cluster config --cluster--admin 例:$ ibmcloud oc cluster config --cluster roks-common --admin #下载kubeconfigを $ ibmcloud oc cluster config -c 例:$ ibmcloud oc cluster config -c roks-common # 登录到ROKS cluster #方法1(通过API key): $ oc login -u apikey -p Login successful. You have access to 67 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default". #方法2(复制好的登录command): $ oc login --token= --server= Logged into "XXXXXXX" as "IAM#xxxxxxx" using the token provided. You have access to 67 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default".
登录完成后,向security group追加ROKS用的设置。
# 获得SecurityGroup的ID $ ibmcloud is security-groups # 向SecurityGroup追加ROKS的rule $ ibmcloud is security-group-rule-addinbound tcp --port-min 30000 --port-max 32767 $ ibmcloud is security-group-rule-add inbound udp --port-min 30000 --port-max 32767 例:$ ibmcloud is security-group-rule-add r022-xxxxxx inbound tcp --port-min 30000 --port-max 32767 例:$ ibmcloud is security-group-rule-add r022-xxxxxx inbound udp --port-min 30000 --port-max 32767
创建新的project
首次创建: $ oc new-project--description=" " --display-name=" 例:$ oc new-project test-common --description="this is a test page" --display-name="test-common" 从第二次登录开始,需要手动输入project的名称,指定需要使用的project $ oc project 例:$ oc project test-common Now using project "test-common" on server "https://xxxxxx".
以上就是登录ROKS cluster的方法,以及登录到project的流程。
Step4 创建Nginx serve并访问最后一布创建Nginx server并且成功访问它。
首先登录到project当中后,创建Nginx server。
#Pod作成、Service作成 $ oc run nginx --image=nginx --restart=Never --expose --port=80 #将Service与Route链接 $ oc expose service nginx OR ($ oc expose svc nginx) #确认信创建的Route的信息 $ oc get route NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD nginx xxxxxxxxxxxxxxxxx nginx 80 None
从openshfit web console里「developer」→「topology」→pod,点击右上方的小箭头,确认nginx。
如果出现了下方的界面则表示成功创建完成Nginx



