4.7. データベースへの接続
national-parks-app
アプリケーションが場所情報を保存する MongoDB データベースをデプロイして接続します。national-parks-app
アプリケーションをマップ可視化ツールのバックエンドとしてマークすると、parksmap
デプロイメントは OpenShift Container Platform の検出メカニズムを使用して地図を自動的に表示します。
前提条件
- OpenShift Container Platform クラスターへのアクセス。
-
OpenShift CLI (
oc
) がインストールされている。 - イメージがデプロイされている。
手順
データベースに接続するには、以下のコマンドを入力します。
oc new-app quay.io/centos7/mongodb-36-centos7:master --name mongodb-nationalparks -e MONGODB_USER=mongodb -e MONGODB_PASSWORD=mongodb -e MONGODB_DATABASE=mongodb -e MONGODB_ADMIN_PASSWORD=mongodb -l 'app.kubernetes.io/part-of=national-parks-app,app.kubernetes.io/name=mongodb'
$ oc new-app quay.io/centos7/mongodb-36-centos7:master --name mongodb-nationalparks -e MONGODB_USER=mongodb -e MONGODB_PASSWORD=mongodb -e MONGODB_DATABASE=mongodb -e MONGODB_ADMIN_PASSWORD=mongodb -l 'app.kubernetes.io/part-of=national-parks-app,app.kubernetes.io/name=mongodb'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.1. シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
Secret
オブジェクトはパスワード、OpenShift Container Platform クライアント設定ファイル、プライベートソースリポジトリーの認証情報などの機密情報を保持するメカニズムを提供します。シークレットは機密内容を Pod から切り離します。シークレットはボリュームプラグインを使用してコンテナーにマウントすることも、システムが Pod の代わりにシークレットを使用して各種アクションを実行することもできます。以下の手順では、シークレット nationalparks-mongodb-parameters
を追加し、それを nationalparks
ワークロードにマウントします。
前提条件
- OpenShift Container Platform クラスターへのアクセス。
-
OpenShift CLI (
oc
) がインストールされている。 - イメージがデプロイされている。
手順
シークレットを作成するには、以下のコマンドを入力します。
oc create secret generic nationalparks-mongodb-parameters --from-literal=DATABASE_SERVICE_NAME=mongodb-nationalparks --from-literal=MONGODB_USER=mongodb --from-literal=MONGODB_PASSWORD=mongodb --from-literal=MONGODB_DATABASE=mongodb --from-literal=MONGODB_ADMIN_PASSWORD=mongodb
$ oc create secret generic nationalparks-mongodb-parameters --from-literal=DATABASE_SERVICE_NAME=mongodb-nationalparks --from-literal=MONGODB_USER=mongodb --from-literal=MONGODB_PASSWORD=mongodb --from-literal=MONGODB_DATABASE=mongodb --from-literal=MONGODB_ADMIN_PASSWORD=mongodb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
secret/nationalparks-mongodb-parameters created
secret/nationalparks-mongodb-parameters created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mongodb シークレットを
nationalpartks
ワークロードにアタッチするように環境変数を更新するには、以下のコマンドを入力します。oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks
$ oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/nationalparks updated
deployment.apps/nationalparks updated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nationalparks
デプロイメントのステータスを表示するには、以下のコマンドを入力します。oc rollout status deployment nationalparks
$ oc rollout status deployment nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment "nationalparks" successfully rolled out
deployment "nationalparks" successfully rolled out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mongodb-nationalparks
デプロイメントのステータスを表示するには、以下のコマンドを入力します。oc rollout status deployment mongodb-nationalparks
$ oc rollout status deployment mongodb-nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment "mongodb-nationalparks" successfully rolled out
deployment "mongodb-nationalparks" successfully rolled out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.2. データの読み込みおよび国立公園の地図表示 リンクのコピーリンクがクリップボードにコピーされました!
parksmap
および nationalparks
アプリケーションをデプロイし、mongodb-nationalparks
データベースをデプロイしました。ただし、データベース に データが読み込まれていません。
前提条件
- OpenShift Container Platform クラスターへのアクセス。
-
OpenShift CLI (
oc
) がインストールされている。 - イメージがデプロイされている。
手順
国立公園のデータを読み込むには、以下のコマンドを入力します。
oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/load
$ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/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 データが適切にロードされていることを確認するには、以下のコマンドを入力します。
oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/all
$ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例 (一部)
, {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]
, {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ラベルをルートに追加するには、以下のコマンドを入力します。
oc label route nationalparks type=parksmap-backend
$ oc label route nationalparks type=parksmap-backend
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
route.route.openshift.io/nationalparks labeled
route.route.openshift.io/nationalparks labeled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マップを表示するためのルートを取得するには、以下のコマンドを入力します。
oc get routes
$ oc get routes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD nationalparks nationalparks-user-getting-started.apps.cluster.example.com nationalparks 8080-tcp edge None parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD nationalparks nationalparks-user-getting-started.apps.cluster.example.com nationalparks 8080-tcp edge None parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記で取得した
HOST/PORT
パスを Web ブラウザーにコピーアンドペーストします。ブラウザーに、世界中の国立公園の地図が表示されるはずです。図4.1 世界中の国立公園