2.6. データベースアプリケーションのデプロイ
次の手順では、国立公園の位置情報を保持する MongoDB データベースである mongodb-nationalparks
をデプロイします。
前提条件
-
parksmap
フロントエンドアプリケーションをデプロイしている。 -
nationalparks
バックエンドアプリケーションをデプロイしている。
手順
-
右上隅の Quick create (
) メニューで、Container images をクリックします。
-
Image name from external registry を選択し、
registry.redhat.io/rhmap47/mongodb
と入力します。 -
Runtime icon フィールドで、
mongodb
を検索して選択します。 - General セクションまでスクロールします。
-
Application name フィールドに
national-parks-app
と入力します。 -
Name フィールドに
mongodb-nationalparks
と入力します。 - Deploy セクションまでスクロールします。
- Resource type フィールドで、Deployment が選択されていることを確認します。
- Show advanced Deployment option をクリックします。
Environment variables (runtime only) の下に、次の名前と値を追加します。
Expand 表2.1 環境変数の名前および値 名前 値 MONGODB_USER
mongodb
MONGODB_PASSWORD
mongodb
MONGODB_DATABASE
mongodb
MONGODB_ADMIN_PASSWORD
mongodb
ヒント追加の各環境変数を追加するには、Add value をクリックします。
Advanced options セクションで、Create a route をオフにします。
データベースアプリケーションは外部からアクセスする必要がないため、ルートは必要ありません。
- Create をクリックします。
Topology ページにリダイレクトされ、ここで national-parks-app
アプリケーションの mongodb-nationalparks
デプロイメントが表示されます。
2.6.1. シークレットを作成してデータベースへのアクセスを提供する リンクのコピーリンクがクリップボードにコピーされました!
nationalparks
アプリケーションでは、MongoDB データベースにアクセスするために、データベース名、ユーザー名、パスワードなどの情報が必要です。ただし、これらは機密情報であるため、Pod に直接保存しないでください。
シークレット を使用して機密情報を保存し、そのシークレットをワークロードと共有します。
Secret
オブジェクトは、パスワード、OpenShift Container Platform クライアント設定ファイル、プライベートソースリポジトリーの認証情報などの機密情報を保持するためのメカニズムを提供します。シークレットは機密内容を Pod から切り離します。ボリュームプラグインを使用するか、シークレットを環境変数として渡すことで、シークレットをコンテナーにマウントできます。その後、システムはシークレットを使用して、Pod に機密情報を提供できます。
次の手順では、nationalparks-mongodb-parameters
シークレットを作成し、それを nationalparks
ワークロードにマウントします。
前提条件
-
nationalparks
バックエンドアプリケーションをデプロイしている。 -
mongodb-nationalparks
データベースアプリケーションをデプロイしている。
手順
-
Workloads
Secrets に移動します。 -
Create
Key/value secret をクリックします。 -
Secret name フィールドに
nationalparks-mongodb-parameters
を入力します。 Key および Value に以下の値を入力します。
Expand 表2.2 シークレットのキーおよび値 キー 値 DATABASE_SERVICE_NAME
mongodb-nationalparks
MONGODB_USER
mongodb
MONGODB_PASSWORD
mongodb
MONGODB_DATABASE
mongodb
MONGODB_ADMIN_PASSWORD
mongodb
ヒント追加の各キー/値ペアを追加するには、Add key/value をクリックします。
- Create をクリックします。
- Add Secret to workload をクリックします。
-
Add this secret to workload リストから、
nationalparks
を選択します。 - Save をクリックします。
設定をこのように変更すると、環境変数が適切に挿入された状態で nationalparks
デプロイメントの新しいロールアウトがトリガーされます。
2.6.2. データベースへのデータのロード リンクのコピーリンクがクリップボードにコピーされました!
mongodb-nationalparks
データベースをデプロイしたら、国立公園の位置情報をデータベースにロードできます。
前提条件
-
nationalparks
バックエンドアプリケーションをデプロイしている。 -
mongodb-nationalparks
データベースアプリケーションをデプロイしている。
手順
-
Workloads
Topology に移動します。 -
nationalparks
デプロイメントをクリックし、Resources タブを選択します。 - ルートから Location URL をコピーします。
URL を Web ブラウザーにペーストし、URL の最後に以下を追加します。
/ws/data/load
/ws/data/load
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
https://nationalparks-user-getting-started.apps.cluster.example.com/ws/data/load
https://nationalparks-user-getting-started.apps.cluster.example.com/ws/data/load
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Items inserted in database: 2893
Items inserted in database: 2893
Copy to Clipboard Copied! Toggle word wrap Toggle overflow