0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ゼロから始めよう、ROKS on IBM CloudでのNginxサーバ構築

Last updated at Posted at 2021-08-31

はじめに

NginxのWebサーバをたててアクセスする手順を紹介する記事が多いですが、ROKS(Red Hat OpenShift on IBM Cloud))で構築する手順はあまり多くなかったので、今回はゼロからIBM Cloud VPC環境にROKSのクラスターを構成しNginx Podをデプロイする手順をご紹介します。

IBM Cloudやcontainerを操作した経験のない初心者の方に向けた手順です。

では、一緒にやってみましょう。

本手順では、
Step1 VPC環境の構築
Step2 ROKSのオーダー
Step3 ROKSクラスターへのログイン
Step4 Nginxサーバ作成、アクセス
の流れで実施します。

前提・環境

必要な物は以下です

本手順の環境はwindows 10です。
準備完了したら、構築手順を進めていきましょう。

Step1 VPC環境の構築

まず、IBM Cloudにログインします。
本手順では、API key でログインしていますが、他の方法でもできます。お好きな方法でログインしてください。

$ ibmcloud login --apikey <API_KEY> -g <RESOURCE_GROUP_NAME> -r jp-tok

例:$ ibmcloud login --apikey <API_KEY> -g rg-common -r jp-tok

API エンドポイント: https://cloud.ibm.com
認証中です...
OK

Tips:
API keyを獲得する方法はこちらのリンクに参照してください↓
https://www.ibm.com/docs/en/app-connect/containers_cd?topic=servers-creating-cloud-api-keyhttps://www.ibm.com/docs/en/app-connect/containers_cd?topic=servers-creating-cloud-api-key

step1ではvpc、subnet、public gateway(ROKS用security group)、cloud object storage(データ保管用)、これら4つのサービスをオーダーします。オーダーする方法を1つずつご紹介いたします。

今回は1つのIBM Cloudの中に3つのゾーンを作り、各ゾーンに1つROKS用subnetとpublic gatewayを作成します。以下に環境のアーキテクチャーを示します。

image.png

以下に設定項目を示します。

項目 数量 設定
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

1.1 vpc

##vpc作成
$ ibmcloud is vpc-create <VPC_NAME>   
例:$ ibmcloud is vpc-create vpc-common

1.2 subnet

##subnet作成
$ ibmcloud is subnet-create <SUBNET_NAME> <VPC_ID> --zone jp-tok-1 --ipv4-address-count ADDR_COUNT --resource-group-name <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を繰り返して入力してください。

1.3 public gateway

public gatewayをオーダーしていきます。
オーダー方法は二つがあります。一つ目は、GUI(IBM cloud console画面)で直接オーダーできます。二つ目はCLIでcommandを打ってオーダーします。本手順では、CLIからオーダーする方法をご説明いたします。

##public gateway作成
$ ibmcloud is public-gateway-create <PUBLIC_GATEWAY_NAME> <VPC_ID> <ZONE_NAME>
例:$ ibmcloud is public-gateway-create pgw-common-tok1 r022-xxxxxxxx jp-tok-1

##作ったpublic gatewayをsubnetに繋げる
$ ibmcloud is subnet-update <SUBNET_ID> --public-gateway-id <PUBLIC_GATEWAY_ID>
例:$ ibmcloud is subnet-update 02f7-xxxxxx --public-gateway-id r022-393xxxxxxxxxxxxx

subnetの個数分繰り返します。

1.4 object storage

最後にobject storageをオーダーします。GUIから非常に作りやすいので、IBM Cloudでオーダーしましょう。
右上の「カタログ」→「object storage」と入力→「object storage」をクリックしてください。

image.png

このobject storageはVPC環境に構築されるROKSのデータを格納するために利用します。ライトプランではこの目的での利用ができないため、最低でもstandardプランでのオーダーが必要となります。

image.png

Step2 ROKSのオーダー

ROKSのオーダーもGUIから実施します。

「カタログ」→「openshift」と入力→「Red Hat OpenShift on IBM CLoud」をクリックしてください。
image.png

以下にROKSの設定情報をしめします。 以下の画像通りに進めてください。

項目 設定
クラスター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

image.png
image.png
右下の「作成」をクリックして、ROKSのオーダーは完了です。

Step3 ROKSクラスターへのログイン

次に、CLIからROKSクラスターへログインする方法をご説明いたします。

クラスターへのログイン方法は二つがあります。

一つ目は、IBM Cloud の IAM のでAPI キーを作成し、その API キーを使用してROKSクラスターにログインできます。こちらの資料に参照してください → https://cloud.ibm.com/docs/openshift?topic=openshift-access_cluster#access_api_key

$ oc login -u apikey -p <API_KEY>

二つ目は、openshift web consoleから、ログインcommandをコピーして、CLIにペーストします。
「OpenShift Web コンソール」→右上の「IAM#ACCOUNT_NAME」→「Copy Login Command」→「Display Token」→「Log in with this token」
image.png
image.png
image.png

では、CLIからクラスターへログインします。

# amdin権限でkubeconfig取得
$ ibmcloud oc cluster config --cluster <ROKS_NAME> --admin
例:$ ibmcloud oc cluster config --cluster roks-common --admin

#kubeconfigをダウンロード
$ ibmcloud oc cluster config -c <ROKS_NAME>
例:$ ibmcloud oc cluster config -c roks-common

# クラスターへログイン
#方法1:
$ oc login -u apikey -p <API_KEY>
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:
$ oc login --token=<XXXXXX> --server=<XXXXXX>
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用のルールを追加
$ ibmcloud is security-group-rule-add <SECURITY-GROUP-ID> inbound tcp --port-min 30000 --port-max 32767
$ ibmcloud is security-group-rule-add <SECURITY-GROUP-ID> 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 <project_name> --description="<DESCRIPTION>" --display-name="<DISPLAY-NAME>
例:$ oc new-project test-common --description="this is a test page" --display-name="test-common"

二回目以降は、先に使いたいprojectを選択します
$ oc project <PROJECT-NAME>
例:$ oc project test-common
Now using project "test-common" on server "https://xxxxxx".

以上で、ROKSクラスターへのログイン、またprojectへのログインについてのご紹介を終わります。

Step4 Nginxサーバ作成、アクセス

projectへログインして、nginxサーバを作成して、アクセスしてみます。

#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を確認してみます。
image.png

下の画面ができたら完成です。
image.png

以上が、ゼロからIBM CloudのROKS環境を構築し、Nginxを建て、アクセスする方法になります。

ご参考になれば幸いです。

参考資料

https://rheb.hatenablog.com/entry/2021/07/01/Red_Hat_OpenShift_on_IBM_Cloud_%28ROKS%29_

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?