2021年06月

08

【てくさぽBLOG】WebSphere Hybrid Editionを導入してみた Vol.1 -OpenShift導入編-

こんにちは。
てくさぽBLOGメンバーの岡田です。

今回はIBM WebSphere Hybrid Edition(以下 WSHE)の導入をAzure上で検証してみたので3回シリーズで検証で得られた知見をお伝えします。

当初は以前実施したIBM Cloud Pak for Applications(以下CP4Apps)導入検証をプラットフォームをAzureに変えて検証する予定で進めていたのですが、CP4Appsが販売終了となり後継としてWSHEが発表されたので内容を変更し、WSHEをAzure上で検証することにしました。

今回は3回シリーズの1回目です。

WebSphere Hybrid Editionを導入してみた Vol.1 -OpenShift導入編- *本編
WebSphere Hybrid Editionを導入してみた Vol.2 -WebSphere Liberty導入編-
WebSphere Hybrid Editionを導入してみた Vol.3 -ツール編-

 

1.はじめに

以前、CP4Apps導入検証の際にはAWS上にUser Provisioned Infrastructure(以下、UPI)方式でOpenShift4(以下、OCP4)を構築してみましたが、今回はAzure上でもUPI方式で行ってみました。
なお、筆者はAzure未経験だったので何箇所かつまづきましたが、初心者はこんなところでつまずくんだなあ、と思って読んでいただけると幸いです。

手順は以下を参考にしました。
1.7. ARM テンプレートを使用したクラスターの AZURE へのインストール
https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.5/html/installing_on_azure/installing-azure-user-infra

OCP4導入後にWSHEのコンポーネントを導入する予定のため、OCP4のバージョンは4.5を利用しました。(現在はOCP4.5~4.7までサポートされていますが、検証当時はOCP4.5のみサポートでした。)

今回の環境・サーバー構成の概要図は以下となります。Bootstrapを除くと計6ノード構成になります。

 

2. 事前準備

2-1. 作業用Linux環境準備

OpenShiftのインストール作業に必要なLinux環境を準備します。
今回の作業環境は以下になります。

環境:手元のPC(Windows 10 1909)上にWindows Subsystem for Linux(WSL)+Ubuntu 18.04
実行ユーザー:user01を作成

(1)作業用ディレクトリとして以下2つのディレクトリを作成
/home/user01/os45      ※OpenShift インストールプログラム置き場
/home/user01/os45/conf  ※yamlやjsonなどの設定ファイル置き場
(2)Azure CLIインストール
(3)jqパッケージインストール
(4)cloudctlインストール
(5)ocコマンドインストール
以下の手順でダウンロードします。
Red Hat Custmer Portalにログインします。「ダウンロード」をクリックし、次の画面で”Red Hat OpenShift Container Platform”をクリックします。



・次の画面でバージョン4.5の最新バージョンを選択し、画面下から”OpenShift v4.5 Linux Client”を/home/user01/os45フォルダにダウンロードし、ファイルを解凍し、パスの通っている/user/local/binフォルダに移動します。

 

2-2. ファイルの準備

(1)OCP4.5インストールファイルのダウンロード
・ocコマンドをダウンロードしたのと同じページで”OpenShift v4.5 Linux Installer”を/home/user01/os45フォルダにダウンロードします。

(2)Pull Secretファイル
Red Hat OpenShift Cluster Manager サイトの「Pull Secret」ページから、インストールプルシークレットを/home/user01/os45フォルダにダウンロードします。

 

2-3. パブリックDNSゾーン設定

(1)リソースグループを作成
まずリソースグループを作成します。今回は「ocp-cluster」という名前のリソースグループを作成しました。

次の画面のタグは特に設定せずに進み、確認画面で「作成」ボタンをクリックします。

(2)App Serviceドメインを作成
今回は「azure-cloudpak-nicptest.com」という名前で作成しました。事前にレジストラからドメイン名を購入せずに作成できるかやってみましょう。


【連絡先情報】を入力します。

ドメインのデプロイが完了したら、nslookupやdigコマンドで確認しました。正しく引けたので、無事ドメインが作成できたようです。別途ドメイン名を用意しておかなくてもよかったです。

〈つまづきポイント:その1〉DNSドメインが正しく作成されない

連絡先情報の”州または準州”の箇所に、最初は”Tokyo-to”と入力してドメインを作成たところ、以下のエラー画面となり正常に作成されませんでした。

原因は”Tokyo-to”と入力した箇所でした。一旦既に作成されていたリソースを削除し、再作成の際に”Tokyo”と入力することで無事ドメインが作成できました。以下は再作成で成功した画面です。

〈つまづきポイント:その2〉Azure アカウント制限は拡張する必要がある?

参考にしたマニュアルにはvCPUの「デフォルトの Azure 制限」がリージョン毎に20、説明に”デフォルトのクラスターには 40 の vCPU が必要であるため、アカウントの上限を引き上げる必要があります。”と書いてあったので引き上げないといけないと思い込みサポートに事情を説明しリクエストしました。ところが、サポートからの回答は契約したサブスクリプションではデフォルトの制限は350コアで必要数は最初から超えているとのことでした。
Azure Portal の [サブスクリプション] ページの [使用量 + クォータ] セクションで確認できると教えてもらいましたので、皆さんもAzure上でOpenShift構築を実施する前には一度確認してみてください。

 

2-4. サービスプリンシパルの作成

そもそもサービスプリンシパルとはなんでしょう?Azure初心者の私もよく分からず、調べた結果、「Azureリソースを管理・操作するアプリケーションのためのアカウント」とのことでした。
今回はAzure Resource Managerでリソースが構築されるので、そのための専用アカウントと理解しました。

以下を実施します。
(1)Azureへのログイン(az login)
(2)アクティブなアカウントの詳細を表示して「tenantId」「id」を確認
(3)アカウントのサービスプリンシパルを作成し「appId」「password」を確認
(4)サービスプリンシパルに追加パーミッションを付与
(4-1)User Access Administrator ロールを割り当て
(4-2)Azure Active Directory Graph パーミッションを割り当て
(5)パーミッション要求を承認

 

3.OpenShift 導入

3-1. SSH秘密鍵の作成

クラスタの作成後に、ノードにアクセスするためにSSH秘密鍵を作成します。
(1)作業用Linuxマシン上でgenコマンドを実行しSSHキーを作成
(2)ssh-agent プロセスをバックグラウンドタスクとして開始
(3)SSH プライベートキーを ssh-agent に追加

 

3-2. インストールファイルの作成

(1)install-config.yaml ファイル生成
(2)ARM テンプレートの一般的な変数のエクスポート
(3)クラスターの Kubernetes マニフェストを生成
(4)コントロールプレーン、ワーカーノードを定義する Kubernetes マニフェストファイルを削除
(5)Kubernetes マニフェストファイルを変更
(6)変数のエクスポート
(7)Ignition 設定ファイルを取得
(8)ファイルの確認

 

3-3. Azure リソースグループおよびアイデンティティーの作成

OCPクラスタのインストールに必要なリソースグループとアイデンティティーを作成します。

(1)リソースグループを作成
(2)リソースグループの Azure アイデンティティーを作成
(3)Contributor ロールを Azure アイデンティティーに付与
(3-1)ロール割当に必要な変数をエクスポート
(3-2)Contributor ロールをアイデンティティーに割り当て

 

3-4. RHCOS クラスターイメージおよびブートストラップ Ignition 設定ファイルのアップロード

(1)Azureストレージアカウントの作成
(2)ストレージアカウントキーを環境変数としてエクスポート
(3)VHD の URL を環境変数にエクスポート
(4)選択した VHD を blob にコピー
(5)blob ストレージコンテナーを作成し、生成されたbootstrap.ignファイルをアップロード

 

3-5. DNSゾーンの作成

(1)プライベートDNSゾーンを作成

 

3-6. Azure での VNet の作成

(1)デプロイメントを作成
(2)VNet テンプレートをプライベート DNS ゾーンにリンク

 

3-7. RHCOS クラスターイメージのデプロイ

(1)RHCOS VHD blob URL を変数としてエクスポート
(2)クラスターイメージのデプロイ

 

3-8.ネットワークおよび負荷分散コンポーネントの作成

(1)ネットワークオブジェクトおよびロードバランサーのデプロイ
(2)変数のエクスポートとクラスターを既存のパブリックゾーンに追加

以上で、OCPノードを作成する手前まで完了しました。

 

3-9.ノードの作成

(1)ブートストラップマシンの作成
(2)コントロールプレーンの作成
(3)ワーカーマシンの作成
(4)クラスターへのログイン
(5)マシンの証明書署名要求の承認
(6)ブートストラップリソースを削除
(7)クラスターのインストールを完了する
(8)ログイン

クラスタにログインできたのでインストールは成功です!

長かったですね、最初のディレクトリ作成から数えて計50工程がようやく終わりました。

 

まとめ

いかがでしたでしょうか。やはりUPIは作業工程が多くて大変でした。
記載のとおり、Azureでの確認や設定で何箇所かつまづきましたが、コマンドを実行していくところはマニュアル記載のコマンドでエラーなく進めることができました。
もっと簡単にOCP環境を構築したいのであればIPI(Installer Provisioned Infrastructure)方式もありますが、構成をカスタマイズしたくてUPI方式を選択することもあるかと思いますので、その際にこの記事が参考になればと思います。

ここまでお読みいただきありがとうございました。
次回は構築したこのOpenShift上でのWebSphereをインストールしてみた内容をお伝えいたします。

 

お問い合わせ

この記事に関するご質問は下記までご連絡ください。

エヌアイシー・パートナーズ株式会社
技術支援本部

E-Mail:nicp_support@NIandC.co.jp
 

back to top