OpenShift on Azureのデプロイ
Azure での OpenShift の前提条件 | Microsoft Docs の記載の手順にしたがってデプロイする方法を説明します。
OpenShift のデプロイ用の ARM のテンプレートは、cloud provider 設定ができるようになったりしているので Azure 側での事前準備が必要になりましたが、いくつかのコマンドを実行すれば良いだけなの案外簡単です。
OpenShift をデプロイするにあたって、事前準備でAzure CLI を利用します。リソースグループ名やロケーションなどを環境変数に設定しておけば、以降の手順を実行する際に各自好きな名称を設定しても、コピペで作業を進めていけるので、まず、各自で可変になりそうな値は環境数に設定します。
パラメータ名 | 値 | 説明 |
---|---|---|
KVRG | keyvaultrg | Key Vault用のリソースグループ名 |
LOCATION | eastus | リージョン |
KVNAME | keyvault | Key Vault名 |
SECNAME | keysecret | Secret名 |
OCPRG | openshift | OpenShiftをデプロイするリソースグループ名 |
OPENSHIFTSP | openshiftsp+乱数OpenShift用のサービスプリンリプル | サービスプリンリプルは、一位の名前である必要があるのでここでは乱数を付与するようにしていますが、任意の自分のアカウント名などをつけても良いです。 |
Bash を使っている場合は、次のコマンドを実行します。
export KVRG=keyvaultrg export LOCATION=eastus export KVNAME=keyvault export SECNAME=keysecret export OCPRG=openshift export OPENSHIFTSP=openshiftsp$RANDOM
OpenShift をデプロイするための準備
1. CLI を使って azure portal にログイン
az login
2. OpenShiftをデプロイするリソースグループを作成
az group create --name $OCPRG --location $LOCATION
3. Key Vault を保持するリソースグループを作成(OpenShiftをデプロイするリソースグループとは別にする)
az group create --name $KVRG --location $LOCATION
4. Key Vault を作成
az keyvault create --resource-group $KVRG --name $KVNAME \ --enabled-for-template-deployment true \ --location $LOCATION
5. SSH キーの生成
ssh-keygen -f ~/.ssh/openshift_rsa -t rsa -N ''
6. Azure Key VaultにSSH秘密鍵を登録
az keyvault secret set --vault-name $KVNAME --name $SECNAME --file ~/.ssh/openshift_rsa
7. サービスプリンリパルの生成
az ad sp create-for-rbac --name $OPENSHIFTSP \ --role Contributor --password "@dmin9999" \ --scopes $(az group show --name $OCPRG --query id)
ここで The request did not have a provided subscription. All requests must have an associated subscription Id. というエラーが発生した場合は、--scopes で subscription が正しく取得できていません。その場合は、az group show --name $OCPRG --query id
を実行し、そこで出力された値を--scopes のパラメータに利用してください。
az group show --name $OCPRG --query id "/subscriptions/<数字がいっぱい>/resourceGroups/openshift" ← 出力される文字列 az ad sp create-for-rbac --name openshiftspkeomizo --role Contributor --password "@dmin9999" --scopes "/subscriptions/<数字がいっぱい>/resourceGroups/openshift"
コマンドが成功すると、次のような文字列が出力されるのでメモ帳などにコピーしておく。
{ "appId": "9999999-9999-9999-9999-999999999999"", "displayName": "openshiftsp1234", "name": "http://openshiftsp1234", "password": "@dmin9999", "tenant": "9999999-9999-9999-9999-999999999999" }
MarketplaceからOpenShiftをデプロイ
1. Azure PortalでOpenShiftのリソースグループを選択
2. リソース追加ボタンをクリック
3. 検索文字列に「OpenShift」を指定してテンプレートを選択
4. 下までスクロールして「Create」をクリックしてウィザードを開始
5. ウィザードのパラメータを入力
1. Basics
パラメータ名 | 値 | 説明 |
---|---|---|
VM Admin User Name | clusteradmin | デフォルト値のまま変更なし |
SSH Public Key for VM Admin User | VMに ssh で接続する時の公開鍵 | |
Subscription | 適用するサブスクリプション | 仮想サーバを9台デプロイできるだけの余裕があること!!! |
Resource Group | Use existingを選択。リソースグループ名は$OCPRGに設定した名称 | 空っぽのリソースグループであること |
Location | $LOCATIONに設定したリージョン |
2. Infrastructure Settings
パラメータ名 | 値 | 説明 |
---|---|---|
OCP Cluster Name Prefix | ocpcluster | デフォルト値のまま変更なし |
Master Node Size | 3 x Standard D4s V3 | メモリ、CPUの要件に合わせて適宜変更。台数は奇数。 |
Infrastructure Node Size | 3 x Standard ES2s v3 | メモリ、CPUの要件に合わせて適宜変更 |
Number of Application Nodes | 2 | 必要な台数に合わせて適宜変更 |
Application Node Size | 2 x Standard D2s v3 | メモリ、CPUの要件に合わせて適宜変更 |
Bastion Host Size | 1 x Standard DS2 v2 | デフォルト値のまま変更なし |
Custom IP subnet | No | 変更なし |
Key Vault Resource Group Name | keyvaultrg | 事前準備の手順4で指定した Key Vaultのリソースグループ名。$KVRG |
Key Vault Name | keyvault | 事前準備の手順4で指定した Key Vault名。$KVNAME |
Secret Name | keysecret | 事前準備の手順6で指定したsecret名。$SECNAME |
3. OpenShift Container Platform Settings
パラメータ名 | 値 | 説明 |
---|---|---|
OpenShift Admin User Password | @dmin123 | 任意の文字列 |
Confirm OpenShift Admin User Password | @dmin123 | |
Red Hat SubscriptionManager User Name | Red Hat Customer Portalに登録しているメールアドレス | |
Red Hat Subscription Manager User Password | Red Hat Customer Portalに登録しているパスワード | |
Red Hat Subscription Manager OpenShift Pool ID | Red Hatから割り当てられているサブスクリプションのPool ID | |
Configure Azure Cloud Provider | Yes | デフォルト値のまま変更なし |
Azure AD Service Principal Client ID GUID | 事前準備の手順7のサービスプリンシプルの作成で出力された AppID | |
Azure AD Service Principal Client ID Secret | 事前準備の手順7:サービスプリンシプルの作成時に指定したパスワード |
4. Additional Settings
パラメータ名 | 値 | 説明 |
---|---|---|
Configure Cluster Logging | No | デフォルト値のまま変更なし。ロギングの設定はインストール後でもできます |
Configure Metrics for the Cluster | No | デフォルト値のまま変更なし。メトリクスの設定はインストール後でもできます |
Default Router Subdomein | nipio | デフォルト値のまま変更なし |
5. Summary
バリデーションがパスしたら、「OK」ボタンをクリックします。
6. Buy
内容を確認して「Create」ボタンをクリックします。
6.完成を気長に待つ
1時間くらいはかかるので、気長に待ちましょう。
OpenShift にログイン
1. Master サーバのパブリックIPアドレスを選択
Azure PortalでOpenShiftのリソースグループを選択し、「master」から始まる Public IP address を選択します。
2. MasterサーバのDNS名を確認
詳細画面のDNS Nameをコピーします。
3.ブラウザでアクセス
コピーしたDNS Nameを利用してOpenShiftの管理コンソールにログインします。 管理コンソールは8443ポートではなく、443ポートで動作しています。
https://masterdnsxxxxxxxxxx.eastus.cloudapp.azure.com
4. clusteradmin でログイン
パラメータ名 | 値 | 説明 |
---|---|---|
Username | clusteradmin | |
Password | OpenShiftデプロイのウィザード3: OpenShift Container Platform Settingsで指定したパスワード |
5. コンソールの確認
この画面が表示されれば OK です。パチパチパチー。
ユーザ管理
マーケットプレイスからデプロイした場合は、ユーザ認証がhtpasswd形式になっています。ユーザを追加する場合は、masterサーバに配置されている/etc/origin/master/htpasswd
ファイルにユーザのエントリを追加します。
Azure AD を使って認証する方法は、 openshift-playground/AzureADAuthorization.md at master · akubicharm/openshift-playground · GitHub を参照してください。