IBM Cloud チュートリアル

Red Hat OpenShift 4.3 on IBM Cloudでアプリを稼働させる

記事をシェアする:

一般公開された Red Hat OpenShift 4.3 on IBM Cloud 上にさっそくアプリケーションをデプロイしてみました

 

Red Hat OpenShift バージョン4.3 のマネージドサービスである Red Hat OpenShift 4.3 on IBM Cloud の提供が、2020年4月24日より開始されました。ヽ(´▽`)/

Red Hat OpenShift on IBM Cloud は、Red Hat OpenShift 4.3 プラットフォームの構築、維持、運用部分がマネージド・サービスとして提供されるので、お客様はイノベーティブなアプリケーションの開発に注力いただくことができます。

そこで、このブログでは Red Hat OpenShift on IBM Cloud 上でアプリケーションをデプロイして稼働させる方法について紹介いたします。

ここでは、次の 3つの手順を順番に実施していきます。

  1.  OpenShift 環境の作成
  2.  OpenShift Webコンソールへのアクセス
  3.  アプリケーションのデプロイ

 


1. OpenShift 環境の作成

 

最初に、IBM Cloud のコンソール  から Red Hat OpenShift on IBM Cloud のサービス・インスタンスを作成しましょう。

IBM Cloud の東京リージョンにワーカーノード 2台で構成される OpenShift 環境を作成します。

注) ライトアカウントではこの操作は実行できません。有償サービスをご利用いただけるアカウントにアップグレードする必要があります。詳しくはこちらをご参照ください。

OpenShift 環境ではマスターノードが必要となりますが、Red Hat OpenShift on IBM Cloud ではIBMが管理する領域でお客様のクラスターごとに独立したHA構成のマスターノードが稼働します。

お客様アカウントの環境ではワーカーノードのみが稼働し、課金の対象もワーカーノードのみとなります。

以下にサービス全体の構成を示しました。お客様の OpenShift クラスターはすべてお客様の専有環境となります。

Red Hat OpenShift on IBM Cloud サービス全体像

 

お客様のアカウント内の環境ではワーカーノードのみが稼働します。

今回は以下のような 4 vCPUs, 16 GB RAMの構成の仮想サーバー2台でクラスターを作成していきます。

クラスターの構成

 

IBM Cloudのカタログ にアクセスします。

フィルターに “Red Hat OpenShift” を入力すると ”Red Hat OpenShift Cluster” が表示されます。下図の赤枠で囲まれたタイルをクリックして Red Hat OpenShift on IBM Cloud サービス・インスタンスの作成を開始します。

Red Hat OpenShift on IBM Cloud サービス・インスタンスの作成

 

クラスターの作成画面では多くの設定項目がありますが、下記に示す表内に記載の通りに選択もしくは入力してください。項目名がない箇所は設定値のままで構いません。

入力が終わったら「作成」ボタンをクリックします。クラスターの作成には15-30分程度の時間がかかります。

クラスターの作成

 

 設定項目名  設定値
 クラスターのタイプとバージョン  OpenShift (設定値のまま)

 4.3.x (設定値のまま)

 クラスター名  (任意の名称)
 リソース・グループ  Default (変更したい場合別のリソース・グループでも可)
 可用性  単一ゾーン
 リージョン  アジア太平洋
 ワーカー・ゾーン  以下のうちいずれかを選択

東京02」「東京04」「東京05

 デフォルトのワーカー・プール

フレーバー

 以下を選択

 4 vCPU 16GB RAM

 仮想 – 共有

 b3c.4×16

 ワーカーノード  2
 ライセンス

OCPライセンス

 以下を選択

このワーカー・プールの追加ライセンスを購入します

 

クラスターの作成が終わると以下のようなが面が表示されます。左上に「通常」と表示されれば Red Hat OpenShift on IBM Cloud の環境として稼働し始めたことを意味します。

クラスターの作成終了

 

以上で、OpenShift 環境の作成が完了しました。


2. OpenShift 環境、Webコンソールへのアクセス

 

それでは、前のステップで作成した OpenShift 環境にアクセスしてみましょう。

IBM Cloudのコンソール にログインし、Red Hat OpenShift on IBM Cloud の管理画面にアクセスします。

もしご自身で別途作成した Red Hat OpenShift 環境をご利用になりたい場合は、以下の追加手順に従い使用するクラスターの指定を行ってください。

追加手順(ご自身で別途作成した Red Hat OpenShift 環境をご利用になりたい場合のみ)

管理コンソールの左上の表示される三本線メニューを表示させると以下のようなメニューが表示されるので、「OpenShift」>「クラスター」を選択します。

 

お客様が所有されている OpenShift のクラスター の一覧ページが表示されます。OpenShift コンソールにアクセスするためにご利用になりたいクラスターの名称部分をクリックします。

 

ご自身で別途作成した Red Hat OpenShift 環境をご利用になりたい場合の追加手順はここまでです。

表示されているクラスターの詳細情報から OpenShift Webコンソースへアクセスします。赤枠で囲ったリンク「OpenShift Webコンソール」をクリックします。

ちなみに、今回は詳しく触れませんが、Open Shift 環境を稼働させている環境については IBM Cloud の管理コンソール内でその稼働状況を確認できます。

OpenShift Webコンソールへアクセス

 

 

OpenShift Webコンソールがポップアップ・ウィンドウとして表示されます。左側に表示されるメニューを選択すると選択項目に応じたリソース情報が表示されます。

 

最後に CLI を使ったログインを行うためのコマンドを取得しておきましょう。

Red Hat OpenShift on IBM Cloud サービスでは IBM Cloud の IAM 機能を用いたユーザー管理とアクセス管理が行われますが、コマンドを取得しておくことで簡単にアクセスできるようになります。

画面右上の ”IAM#” で始まるユーザー名の部分をクリックして表示できるメニューから「Copy Login Command」を選択します。

 

以下のページが表示されるので「Display Token」をクリックします。

 

Login コマンドがAPI tokenとあわせて表示されます。のちほど利用するので Loginコマンドを控えておきましょう

 

 


3. アプリケーションのデプロイ

 

事前準備がすべて終わりましたので、アプリケーションをデプロイしていきましょう。

今回は Node.js で書かれているアプリケーションを OpenShift 上にデプロイし、外部へ公開します。これから稼働させるアプリケーションの構成を以下に簡単に示します。

 

まずはプロジェクトを作成します。アプリケーションをデプロイするための名前空間に相当するプロジェクトから作成していきます。

OpenShift Webコンソール上で左側のメニューの「Administrator」をクリックして表示されるメニューから「Developer」を選択します。

 

次に「Project: default」の部分をクリックするとプロジェクト選択用のメニューが表示されます。

この中から「Create Project」を選択します。

 

次の画面では以下の設定を行い、「Create」ボタンをクリックします。

 設定項目名  設定値
 Name  healthcare-sample

 

プロジェクトの作成が実行され、コンテキストとして選択中のプロジェクトは新たに作成したプロジェクトに変更されます。

続いてアプリケーションを作成していきます。GitHub 上で公開されているサンプルアプリケーションを使用します。画面上の「From Git」をクリックします。

 

作成するアプリケーションに関する設定を行います。画面の上部より順番に以下のように設定します。

上部の入力を行うことで表示される項目もありますので、ご注意ください。設定後に「Create」ボタンをクリックします。

 設定項目名  設定値
 Git Repo URL https://github.com/svennam92/node-s2i-openshift
 Builder Image  Node.js (設定値のまま)
 Builder Image Version  10-SCL (設定値のまま)
 Application Name  node-s-2-i-openshift-app (設定値のまま)
 Name  node-s-2-i-openshift (設定値のまま)
 Resources – Resource type  Deployment (設定値のまま)
 Advanced Options – Create a route to the application  チェックあり (設定値のまま)

 

作成が始まると以下のようなトポロジーを示すアイコン画像が表示されます。しばらくするとアイコンの左下の表示が緑色のアイコンに変わり、アプリケーションのデプロイから外部への公開までが終了したことがわかります。

 

このとき、Source-to-Image ツールを使ったコンテナ・イメージの作成、内部イメージ・レポジトリーへのコンテナ・イメージの保管、Deployment および Service の適用、そして Service の外部への公開が行われています

CI/CD のツールがシームレスに組み込まれ、開発者はそれを意識することなく使用することができます

トポロジーのアイコンをクリックすると、「Deployment」に関する情報が表示されます。そのうち、「Route」に表示されるURLをクリックするとデプロイされたアプリケーションにアクセスできます。

 

以下のような画面が表示されれば、アプリケーションのデプロイと外部への公開に成功しています。

 

このようにソースコードが用意されていれば、非常に簡単にRed Hat OpenShift on IBM Cloud 上にアプリケーションをデプロイし稼働させることができます

 

 

前の手順で CLI のログインコマンドを確認しましたが、作成された OpenShift 環境内の Kubernetes リソースを少々確認してみます。

確認のためには、あらかじめ OpenShift のバージョンに対応した CLI をクライアントPC上に導入しておく必要があります。

まずは、前のステップで控えておいたログインコマンドを使用してOpenShift環境にログインします。

標準では「default」プロジェクトがターゲットとなっているので、先ほど作成した「healthcare-sample」プロジェクトを使用する設定に変更します。

% oc login –token=<TOKEN> –server=https://c100-e.jp-tok.containers.cloud.ibm.com:30377

Logged into “https://c100-e.jp-tok.containers.cloud.ibm.com:30377” as “IAM#xxxxxt9@jp.ibm.com” using the token provided.

 

You have access to 63 projects, the list has been suppressed. You can list all projects with ‘oc projects’

 

% oc project healthcare-sample

Now using project “healthcare-sample” on server “https://c100-e.jp-tok.containers.cloud.ibm.com:31621”.

 

そして、作成されたリソースを確認するために「oc get all」コマンドを実行してみます。

% oc get all

NAME                                        READY   STATUS      RESTARTS

pod/node-s-2-i-openshift-1-build            0/1     Completed   0

pod/node-s-2-i-openshift-7c8bcf5bcc-7znx7   1/1     Running     0

 

NAME                           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)

service/node-s-2-i-openshift   ClusterIP   172.21.58.89   <none>        8080/TCP

 

NAME                                   READY   UP-TO-DATE   AVAILABLE

deployment.apps/node-s-2-i-openshift   1/1     1            1

 

NAME                                              DESIRED   CURRENT   READY

replicaset.apps/node-s-2-i-openshift-7c8bcf5bcc   1         1         1

 

NAME                                                  TYPE     FROM   LATEST

buildconfig.build.openshift.io/node-s-2-i-openshift   Source   Git    1

 

NAME                                              TYPE     FROM          STATUS

build.build.openshift.io/node-s-2-i-openshift-1   Source   Git@dc702a1   Complete

 

NAME                                                  IMAGE REPOSITORY                                                                          TAGS

imagestream.image.openshift.io/node-s-2-i-openshift   image-registry.openshift-image-registry.svc:5000/healthcare-sample/node-s-2-i-openshift   latest

 

NAME                                            HOST/PORT                                                                       PATH   SERVICES               PORT       TERMINATION   WILDCARD

route.route.openshift.io/node-s-2-i-openshift   node-s-2-i-openshift-healthcare-sample.xxxx.jp-tok.containers.appdomain.cloud          node-s-2-i-openshift   8080-tcp                 None

 

 

この結果からアプリケーションの Pod が1つ稼働していることや、Route を通じて Service が公開されていることなどを読み取ることができます。

個々のリソースに対するログなどを参照して、もう少し細かく何が起きたのか確認することで、理解も深まると思います。

 

実際には先ほどのサンプルのようにアプリケーションを単体で稼働することは稀で、データベースをはじめとするその他のワークロードも同時に稼働することがほとんどかと思います。このようなシナリオで非常に有用なのが、Red Hat OpenShift バージョン4 の新機能として利用できる Operator です。

Operator は Site Reliability Engineering チームのエンジニアのナレッジをソフトウェアとして表現できるツールで、アプリケーションの導入・更新から稼働中のアプリケーションの監視や問題発生時のリカバリーまでライフサイクルを通じた管理機能を提供するためのフレームワークが用意されています。

実際に開発された Operator が多数公開されている Operator Hub は Red Hat OpenShift on IBM Cloud から利用することができます。Administrator用の画面内にメニューがあり、すでに 200を超える Operator が利用できます。データベースのカテゴリー(Database)だけでも 30を超える Operator が用意されています。

Operator Hub で公開されている Operator

 

Operator はOperator Hub から GUI 操作だけで導入することができます。ここでは例として IBM Cloud Operator を導入してみます。

IBM Cloud Operator は IBM Cloud でご利用いただけるサービスを Red Hat OpenShift on IBM Cloud から利用するために Kubernetes のカスタムリソース定義に基づく API を提供します。

具体的にはサービス・インスタンスを作成する(Service)機能と、作成されたサービス・インスタンスを利用する(Bind)機能を提供します。これらを用いることで Red Hat OpenShift on IBM Cloud のリソース管理機能と IBM Cloud がもつ IAM 機能を連携し、Open Shift 上で稼働するアプリケーションから IBM Cloud 上のサービスインスタンスを利用するために必要なリソースが適切に作成、維持されるようになります。

 

Operator Hub で ”IBM Cloud” と入力します。IBM Cloud に関連する Operator が表示覚ます。「IBM Cloud Operator」をクリックします。Operator のサポートに関する注意のダイアログが表示されるので確認して「Continue」をクリックします。

 

Operator に関する説明が表示されるので「Install」をクリックします。続くページでは表示された内容のまま「Subscribe」をクリックします。IBM Cloud Operator が導入されていきます。

 

Installed Operators」を選択すると、導入した「IBM Cloud Operator」が表示されます。

ここから Operator により定義される「Service」「Bind」を作成することで、IBM Cloud の Watson をはじめとするサービス群を利用できるようになります。すでにご利用されている IBM Cloud のサービスに対してもリソースの定義を行うことで Red Hat OpenShift on IBM Cloud から利用することができます。

 

 


まとめ

 

Red Hat OpenShift on IBM Cloud では OpenShift がもつ開発者向けの機能を利用することで容易にアプリケーションを稼働させることができました

Operator が用意されているソフトウェアを利用することにより、早く環境を用意して開発に集中できることをご理解いただけたと思います

また、IBM Cloud Operator を通じて IBM Cloud でご利用いただけるサービスは Red Hat OpenShift on IBM Cloud 上で稼働するアプリケーションからも利用でき、迅速にイノベーティブなアプリケーションを稼働させるために寄与します

アップストリーム版の Kubernetes では利用が難しいと挫折された方や、よりよい開発者のエクスペリエンスをお求めのお客様にはぜひご利用いただきたいサービスです

 


Red Hat OpenShift on IBM Cloudを試す

 

IBM製品やサービスの デモやハンズオン コンテンツを揃えている Webサイト「IBM Demos」では Red Hat OpenShift on IBM Cloudのコンテンツもご用意しております。IBMid を作成いただければ、誰でも無料で Red Hat OpenShift on IBM Cloud の環境を試用できます。

アプリケーションの作成、IBM Cloud 上のサービスとの連携、ログ管理サービスとの統合などのハンズオン コンテンツもご用意しております。

環境の利用は最大4時間の制限時間がございますが、Webブラウザー内で利用できるターミナル画面などと合わせて利用でき、時間内であれば自由に操作いただけます。ぜひお試しください。以下のブログも参考にしてみてください。

参考: Rd Hat OpenShift on IBM Cloud   デモサイトから無料で試す方法

 

著者: 日本アイ・ビー・エム株式会社  IBM Cloudテクニカル・セールス 古川 正宏


Red Hat OpenShift / Red Hat OpenShift on IBM Cloud に関連する有益な参考情報 (すべて新しいタブで開きます)


投稿:IBM Cloud Blog Japan 編集部

 

 

More IBM Cloud チュートリアル stories

システム改修なしで効果抜群! 基幹システム×LINEチャットボット発注システム DX事例

IBM Cloud Blog, IBM Partner Ecosystem, デジタル変革(DX)...

昨今の営業人材不足や、コロナ禍による対面機会の減少により、ニューノーマルな営業スタイルへの変革を迫られている企業は多いのではないでしょうか。今回ご紹介する日本サニパック株式会社(以下、日本サニパック)では、全国に広がる小 ...続きを読む


第20回『デジタルサービス・プラットフォーム(DSP)におけるDevSecOpsの価値』

IBM Cloud Blog, IBM Cloud News, IBM Partner Ecosystem

こんにちは。日本IBMでアプリケーション・アーキテクトをしている土井です。 今回は、OpenShiftを使ってアプリケーションのためのプラットフォームを作るとはどういうことか?とOpenShiftプラットフォーム機能の一 ...続きを読む


クラウドネィティブにおけるサービスメッシュとカオスエンジニアリングについて

IBM Cloud Blog, IBM Cloud News, IBM Partner Ecosystem

こんにちは。IBM Cloud Platform Technical Sales坂田です。 クラウドネィティブ時代のシステム信頼性を向上させる新しい手法であるカオスエンジニアリング及びマイクロサービスの連携管理基盤である ...続きを読む