IBM Cloud チュートリアル
Red Hat OpenShift 4.3 on IBM Cloudでアプリを稼働させる
2020年05月07日
カテゴリー IBM Cloud Blog | 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つの手順を順番に実施していきます。
- OpenShift 環境の作成
- OpenShift Webコンソールへのアクセス
- アプリケーションのデプロイ
1. OpenShift 環境の作成
最初に、IBM Cloud のコンソール から Red Hat OpenShift on IBM Cloud のサービス・インスタンスを作成しましょう。
IBM Cloud の東京リージョンにワーカーノード 2台で構成される OpenShift 環境を作成します。
注) ライトアカウントではこの操作は実行できません。有償サービスをご利用いただけるアカウントにアップグレードする必要があります。詳しくはこちらをご参照ください。
OpenShift 環境ではマスターノードが必要となりますが、Red Hat OpenShift on IBM Cloud ではIBMが管理する領域でお客様のクラスターごとに独立したHA構成のマスターノードが稼働します。
お客様アカウントの環境ではワーカーノードのみが稼働し、課金の対象もワーカーノードのみとなります。
以下にサービス全体の構成を示しました。お客様の OpenShift クラスターはすべてお客様の専有環境となります。
お客様のアカウント内の環境ではワーカーノードのみが稼働します。
今回は以下のような 4 vCPUs, 16 GB RAMの構成の仮想サーバー2台でクラスターを作成していきます。
IBM Cloudのカタログ にアクセスします。
フィルターに “Red Hat OpenShift” を入力すると ”Red Hat OpenShift Cluster” が表示されます。下図の赤枠で囲まれたタイルをクリックして 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コンソールがポップアップ・ウィンドウとして表示されます。左側に表示されるメニューを選択すると選択項目に応じたリソース情報が表示されます。
最後に 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 は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 に関連する有益な参考情報 (すべて新しいタブで開きます)
- 2020年5月7日 日本IBMプレスリリース: IBM、Red Hat OpenShift 4.3 on IBM Cloud でセキュリティーと生産性を強化
- USブログ(英語): IBM Boosts Security and Productivity with Red Hat OpenShift 4.3 on IBM Cloud
- USブログ(英語): Video – What’s New in OpenShift 4.3?
- IBM Cloud 資料: Red Hat OpenShift on IBM Cloud
- クラウドネイティブという考え方 — これからのIT基礎知識 OpenShift / Kubernetes の導入で成果をあげる道 Vol.1, Vol.2, Vol.3, Vol.4
- コンテナで作りコンテナで動かす 成功のカギはOpenShiftの採用 講演レポート(PDF)
- 企業がコンテナ・Kubernetesを使うべき理由とその課題を解決するOpenShift EnterpriseZine記事
- Kubernetesから強化されたOpenShiftの便利な機能とは? IBMが「3C」でコンテナ導入をサポート CodeZine記事
- 「Red Hat OpenShift on IBM Cloud」によって、複雑なマルチゾーンのOpenShiftクラスタの構築はどれほど簡単になるのか? @ITSpecial記事(平岡大祐氏著)
- 「Red Hat OpenShift on IBM Cloud」によって、モノリシックなJava EEアプリを分割しマイクロサービスとして動かすのはどれほど簡単になるのか? @ITSpecial記事(平岡大祐氏著)
- 「Red Hat OpenShift on IBM Cloud」によって、CI/CD パイプラインの構築はどれほど簡単になるのか? @ITSpecial記事(平岡大祐氏著)
投稿:IBM Cloud Blog Japan 編集部
セキュリティー・ロードマップ
IBM Cloud Blog
統合脅威管理、耐量子暗号化、半導体イノベーションにより、分散されているマルチクラウド環境が保護されます。 2023 安全な基盤モデルを活用した統合脅威管理により、価値の高い資産を保護 2023年には、統合された脅威管理と ...続きを読む
量子ロードマップ
IBM Cloud Blog
コンピューティングの未来はクォンタム・セントリックです。 2023 量子コンピューティングの並列化を導入 2023年は、Qiskit Runtimeに並列化を導入し、量子ワークフローの速度が向上する年になります。 お客様 ...続きを読む
ハイブリッドクラウド・ロードマップ
IBM Cloud Blog
コンポーザブルなアプリケーション、サービス、インフラストラクチャーにより、企業は複数のクラウドにまたがるダイナミックで信頼性の高い仮想コンピューティング環境の作成が可能になり、開発と運用をシンプルに行えるようになります。 ...続きを読む