「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>OpenShift]]
--OpenShiftファースト・ステップ
--[[OpenShiftセカンド・ステップ]]

*目次 [#l97a5d0b]
#contents

*概要 [#b18f50c2]
-OpenShiftのファーストステップをどうやるか?~
取り敢えず、以下のTest Drive OpenShiftから入ることにした。

--Try Red Hat OpenShift Container Platform for Free~
https://www.openshift.com/products/container-platform/trial/

-Test Drive OpenShift
--Test Drive OpenShiftは、GCP, Azure, OPS?で提供されている模様。
--OpenShift Container Platformの機能を体験するのに役立つ。
--以下は、「on Azure」のドキュメントと手順から。

-Azureを使用するので、Azureのアカウントを作成しておく。

*サンプル [#fcc28c76]
国立公園サンプル・アプリケーション
-Java EEベースのアプリケーション
-MongoDBデータベースに対して2D地理空間検索を実行。
-世界中のすべての国立公園を検索してマップする。

*アーキテクチャ [#nd02a3f7]
Azure上にデプロイされる。

**Azure上のアーキテクチャ [#nc246381]
-同一のResourceグループ、仮想ネットワーク
-マスターとノードで異なるサブネット・可用性セット
-マスター → ノードは内部ロードバランサを経由する。

**[[OpenShiftのアーキテクチャ>OpenShift#o75598f0]] [#i725f781]

*立上 [#qbee041e]

**探索 [#bf9e2db5]

-[[Microsoft Azure Test Drive>https://testdrive.azure.com/#/test-drive/redhat.openshift-test-drive]]にアクセスする。

-すると、
>「No test drive was found!」

>と表示されるので、

-以下のリンク
>「Explore more solutions on Azure Marketplace [See more]」

>を押下して、Marketplace 起動する。

-そこで、OpenShiftを検索し、~
[Red Hat OpenShift Container Platform]を選択する。

**起動 [#t7a8be1e]
-以下の画面が表示されるので、[体験版]をクリックする(5hだけ利用可能)。
#ref(1.png,left,nowrap,手順1,60%)

-すると、Test Drive OpenShift (on Azure)の

--展開が開始される(マニュアルが提供される)。

--起動には20-30分かかる。

--プロビジョニングの完了後、

---ポータルの正確なURLとアカウント情報が電子メールで提供される。

---また、画面が以下のようにプロビジョニングの完了後の画面に遷移する。
#ref(2.png,left,nowrap,手順2,60%)

-ポータルの正確なURLとアカウント情報をメモしておく。

*演習 [#vfa0c18f]

**1 : OpenShift CLIのインストール [#i98da750]
[[OpenShift origin client tools v1.4.1 for Windows>https://github.com/openshift/origin/releases/download/v1.4.1/openshift-origin-client-tools-v1.4.1-3f9807a-windows.zip]]をダウンロード

***インストール [#m62f28a4]

-ZIPの展開で良い(ここでは「C:\openshift-cli」とする)。

-以下パス情報をユーザー環境変数(Path)に登録する。
 C:\openshift-cli

-CMDを起動し、[[oc>OpenShift#t172a1fe]]コマンドを実行し、動作することを確認する。
 >oc
 OpenShift Client
 ・・・
 >oc version
 oc v1.4.1+3f9807a
 kubernetes v1.4.0+776c994
 features: Basic-Auth

**2 : 動作確認とクイックツアー [#zafdc4b2]

***ログイン [#d7a25afe]

-ポータルを使用

--ポータルの正確なURLにアクセスして、ポータルからログイン可能。
 https://masterdnsxx.centralus.cloudapp.azure.com/console

-CLIを使用 (1)

--SSHのEndpointの正確なURLを使用して以下の[[oc login>OpenShift#n82c3ead]]コマンドを実行する。
 >oc login opnshdnsxx.westus.cloudapp.azure.com:8443

--Test Driveに自己署名証明書を使用しているので y を押下
 Use insecure connections? (y/n):

--一部のバージョンのWindows環境では以下のオプションが必要になることがある。
 >oc login https://opnshdnsxx.westus.cloudapp.azure.com:8443 –insecure-skip-tls-verify=true

--アカウント情報を入力
 Username: (The username provided to you in Access information section of the test-drive)
 Password: (The password provided to you in Access information section of the test-drive)
 Login successful.

-CLIを使用 (2)

--ポータルにログインしてログイン・コマンドをコピーする。
#ref(3.png,left,nowrap,手順3,60%)

--以下のトークン付きのログイン・コマンドを実行してログインする。
 >oc login https://opnshdnsxx.centralus.cloudapp.azure.com --token=XXXXX

--Test Driveに自己署名証明書を使用しているので y を押下
 Use insecure connections? (y/n):

-ログインが完了し、既定のプロジェクトに居る状態になる。
 Logged into "https://masterdnsxx.centralus.cloudapp.azure.com:443" as "testdrive" using the token provided.
 
 You have access to the following projects and can switch between them with 'oc project <projectname>':
 
   * default
     kube-public
     kube-system
     logging
     management-infra
     openshift
     openshift-infra
     openshift-node
     openshift-web-console
 
 Using project "default".

***新規作成 [#g283220f]
続いて、[[oc new-project>OpenShift#o7d1d51c]]コマンドで[[プロジェクト>OpenShift#me26efb8]]を新規作成する。
 >oc new-project <projectname>

**3 : Docker Imageを展開 [#f2cb9675]

***最初のイメージを展開する。 [#d38c20f4]

-Kubernetes Guestbookアプリケーションを展開する。
 https://hub.docker.com/r/kubernetes/guestbook/

-先ずは、[[oc new-project>OpenShift#o7d1d51c]]コマンドで、~
guestbookという新しい[[プロジェクト>OpenShift#me26efb8]]を作成する。
 >oc new-project usertestdrive-guestbook

--[[oc new-project>OpenShift#o7d1d51c]]コマンドは自動的にその[[プロジェクト>OpenShift#me26efb8]]を使用するように切り替える。
 Now using project "usertestdrive-guestbook" on server "https://masterdnsxx.centralus.cloudapp.azure.com:443".
 
 You can add applications to this project with the 'new-app' command. For example, try:
 
     oc new-app centos/ruby-22-centos7~https://github.com/openshift/ruby-ex.git
 
 to build a new example application in Ruby.

--[[プロジェクト>OpenShift#me26efb8]]の参照 / アクセスをする場合は、[[oc get projects>OpenShift#y80f6ad9]]コマンドを使用する。
 >oc get projects
 NAME                      DISPLAY NAME   STATUS
 default                                  Active
 kube-public                              Active
 kube-system                              Active
 logging                                  Active
 management-infra                         Active
 openshift                                Active
 openshift-infra                          Active
 openshift-node                           Active
 openshift-web-console                    Active
 usertestdrive-guestbook                  Active

-新規[[プロジェクト>OpenShift#me26efb8]]を作成した後、[[サービス>OpenShift#l875353c]]を作成する。

--[[oc new-app>OpenShift#nfa9dcdd]]コマンドを実行する。
 >oc new-app kubernetes/guestbook
 --> Found Docker image 4305190 (3 years old) from Docker Hub for "kubernetes/guestbook"
 
     * An image stream will be created as "guestbook:latest" that will track this image
     * This image will be deployed in deployment config "guestbook"
     * Port 3000/tcp will be load balanced by service "guestbook"
       * Other containers can access this service through the hostname "guestbook"
     * WARNING: Image "kubernetes/guestbook" runs as the 'root' user which may not be permitted by your cluster administrator
 
 --> Creating resources ...
     imagestream "guestbook" created
     deploymentconfig "guestbook" created
     service "guestbook" created
 --> Success
     Run 'oc status' to view your app.

--次の方法で、イメージのダウンロードと展開のステータスを確認できる。

---CLIを使用~
[[oc get pods>OpenShift#y80f6ad9]]コマンドを使用する。
 >oc get pods -w
 NAME                 READY     STATUS              RESTARTS   AGE
 guestbook-1-deploy   0/1       ContainerCreating   0          39s
 NAME                 READY     STATUS    RESTARTS   AGE
 guestbook-1-deploy   1/1       Running   0          1m
 guestbook-1-zw947   0/1       Pending   0         0s
 guestbook-1-zw947   0/1       Pending   0         0s
 guestbook-1-zw947   0/1       ContainerCreating   0         0s
 guestbook-1-zw947   1/1       Running   0         8s
 guestbook-1-deploy   0/1       Completed   0         1m
 guestbook-1-deploy   0/1       Terminating   0         1m
 guestbook-1-deploy   0/1       Terminating   0         1m
※ To exit, hit Ctrl+C.

---ポータルを使用
>
+ポータルに移動
+[[プロジェクト>OpenShift#me26efb8]]を選択
 usertestdrive-guestbook
+ブラウズを選択
+[[ポッド>Kubernetes#j268603c]]を選択

--[[oc get services>OpenShift#y80f6ad9]]コマンドで、[[サービス>OpenShift#l875353c]]が作成されたのを確認できる。
 >oc get services
 NAME        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
 guestbook   172.30.XXX.XXX   <none>        3000/TCP   8m

***作成した[[サービス>OpenShift#l875353c]]を確認する。 [#t1dac5f4]
-[[oc get service>OpenShift#y80f6ad9]]コマンドで、[[サービス>OpenShift#l875353c]]の詳細をJSON形式で取得できる。
 >oc get service guestbook -o json
 ・・・JSON・・・

-[[oc get pods>OpenShift#y80f6ad9]]コマンドで、[[ポッド>Kubernetes#j268603c]]の詳細をJSON形式で取得できる。
 >oc get pods
 NAME READY STATUS RESTARTS AGE
 guestbook-1-zw947 1/1 Running 0 5m
 >oc get pod guestbook-1-zw947 -o json
 ・・・JSON・・・

-[[oc describe service>OpenShift#i739e841]]コマンドで、[[サービス>OpenShift#l875353c]]の詳細を取得できる。
 >oc describe service guestbook

**4 : ルート作成してサービス公開[#j0e644a9]
-[[oc get routes>OpenShift#y80f6ad9]]コマンドで、既存のルートがないことを確認する。
 >oc get routes
 No resources found.

-[[oc get services>OpenShift#y80f6ad9]]コマンドで、公開する[[サービス>OpenShift#l875353c]]名を取得する。
 >oc get services
 NAME        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
 guestbook   172.30.XXX.XXX   <none>        3000/TCP   8m

-[[oc expose service>OpenShift#u8e985ad]]コマンドで、[[サービス>OpenShift#l875353c]]のルートを作成する。
 >oc expose service guestbook
 route "guestbook" exposed

-[[oc get routes>OpenShift#y80f6ad9]]コマンドで、ルートが作成されたことを確認する。
 >oc get routes
 NAME        HOST/PORT                                               PATH      
 SERVICES    PORT       TERMINATION
 guestbook   guestbook-usertestdrive-guestbook.XXX.XXX.XXX.XXX.Xip.io             
 guestbook   3000-tcp

-WebアプリケーションにこのURLを使用してアクセス可能。
 https://guestbook-usertestdrive-guestbook.XXX.XXX.XXX.XXX.Xip.io/

**5 : リモート操作 [#q0ae4455]
-[[oc get pods>OpenShift#y80f6ad9]]コマンドで、[[ポッド>Kubernetes#j268603c]]名を取得する。
 >oc get pods
 NAME                READY     STATUS    RESTARTS   AGE
 guestbook-1-zw947   1/1       Running   0          16m

-[[oc rsh>OpenShift#aad9e41b]]コマンドで、[[ポッド>Kubernetes#j268603c]]にRSHを確立できる。
--(1)
 >oc rsh guestbook-1-zw947
 
 BusyBox v1.21.1 (Ubuntu 1:1.21.0-1ubuntu1) built-in shell (ash)
 Enter 'help' for a list of built-in commands.
 
 /app $ ls public/
 index.html  script.js   style.css
 /app $ exit
 >
--(2)
 >oc rsh guestbook-1-zw947 ls public/
 index.html  script.js   style.css

-[[oc exec>OpenShift#o147b488]]コマンドで、[[ポッド>Kubernetes#j268603c]]内でコマンドを実行できる。
 >oc exec guestbook-1-zw947 ls public/
 index.html
 script.js
 style.css

**6 : スケーリングと自己修復 [#h23df53a]

***スケールアップを確認する。 [#df3a2b32]

-現在の値を確認する。

--DCを確認する。
 >oc get dc
 NAME        REVISION   DESIRED   CURRENT   TRIGGERED BY
 guestbook   1          1         1         config,image(guestbook:latest)

--RCを確認する。
 >oc get rc
 NAME          DESIRED   CURRENT   READY     AGE
 guestbook-1   1         1         1         2m
 
 >oc get rc guestbook-1 -o json
 ・・・JSON・・・
 
 >oc get rc guestbook-1 -o json | grep -B1 -E "replicas" | grep -v "deployment"
 --
   "spec": {
     "replicas": 1,
 --
   "status": {
     "replicas": 1,
※ Windowsではgrepが実行不可能。[[WSL>https://techinfoofmicrosofttech.osscons.jp/index.php?Windows%20Subsystem%20for%20Linux]]を使用するとイイかもしれない。

-DCのレプリカ数を「3」に設定しスケールさせる。

--ポータルを使用~
ポータルなら[[ポッド>Kubernetes#j268603c]]横の[↑]ボタンで行う。
#ref(4.png,left,nowrap,手順4,60%)

--CLIを使用
 >oc scale --replicas=3 dc/guestbook
 deploymentconfig "guestbook" scaled

-変更後の値を確認する。

--DCを確認する。
 >oc get dc
 NAME        REVISION   DESIRED   CURRENT   TRIGGERED BY
 guestbook   1          3         3         config,image(guestbook:latest)

--RCを確認する。
 >oc get rc
 NAME          DESIRED   CURRENT   READY     AGE
 guestbook-1   3         3         3         4m
 
 >oc get rc guestbook-1 -o json
 ・・・JSON・・・
 
 >oc get rc guestbook-1 -o json | grep -B1 -E "replicas" | grep -v "deployment"
 --
   "spec": {
     "replicas": 3,
 --
   "status": {
     "replicas": n,

-実際にレプリカが増えたかどうかは、[[ポッド>Kubernetes#j268603c]]の数を確認する。

--CLIを使用
 >oc get pods
 NAME                READY     STATUS    RESTARTS   AGE
 guestbook-1-2lbxq   1/1       Running   0          37m
 guestbook-1-g7flm   1/1       Running   0          37m
 guestbook-1-nb9gv   1/1       Running   0          41m

--ポータルを使用
#ref(5.png,left,nowrap,手順5,60%)

-以下のコマンドで[[サービス>OpenShift#l875353c]]のエンドポイントを確認できる。~
([[ポッド>Kubernetes#j268603c]]がスケールするので、エンドポイントも増える)
 >oc describe svc/guestbook
 Name:                   guestbook
 Namespace:              usertestdrive-guestbook
 Labels:                 app=guestbook
 Selector:               app=guestbook,deploymentconfig=guestbook
 Type:                   ClusterIP
 IP:                     172.30.XXX.XXX
 Port:                   3000-tcp        3000/TCP
 Endpoints:              10.128.0.5:3000,10.128.0.6:3000,10.128.0.7:3000
 Session Affinity:       None
 No events.

***自己修復を確認する。 [#e0e9aefa]

-以下のコマンドで[[ポッド>Kubernetes#j268603c]]を削除する。
 >oc delete pod guestbook-1-2lbxq
 pod "guestbook-1-2lbxq" deleted

-直ちに、[[ポッド>Kubernetes#j268603c]]の数を確認する。

--Terminating & Pending
 >oc get pods
 NAME                READY     STATUS        RESTARTS   AGE
 guestbook-1-2lbxq   1/1       Terminating   0          39m
 guestbook-1-7drz5   0/1       Pending       0          0s
 guestbook-1-g7flm   1/1       Running       0          39m
 guestbook-1-nb9gv   1/1       Running       0          43m

--Pending -> Running
 >oc get pods
 NAME                READY     STATUS    RESTARTS   AGE
 guestbook-1-7drz5   1/1       Running   0          14s
 guestbook-1-g7flm   1/1       Running   0          39m
 guestbook-1-nb9gv   1/1       Running   0          44m

**7 : JBossにJavaコードをデプロイ [#vac65cfc]
国立公園サンプルアプリケーションを展開する。

-国立公園サンプルアプリケーション~
世界中のすべての国立公園を検索し、2D地理空間情報をマップする。
--Java EEベースのアプリケーション
--MongoDBデータベース

***プロジェクトの作成 [#wdac3f1e]
 >oc new-project usertestdrive-nationalparks
 Now using project "usertestdrive-nationalparks" on server "https://masterdnsxx.centralus.cloudapp.azure.com:443".
 
 You can add applications to this project with the 'new-app' command. For example, try:
 
     oc new-app centos/ruby-22-centos7~https://github.com/openshift/ruby-ex.git
 
 to build a new example application in Ruby.

***プロジェクトのビルド [#d0db777b]
OpenShift上のDockerイメージとコードを結合する

-ポータルを使用
--[[ポータルを表示する>#zafdc4b2]]。
--[My Projects] -> 「usertestdrive-nationalparks」を選択する。
--[Add to Project]から[Browse Catalog]を選択する。
--「"jboss-eap70-opensshift" (JBoss EAP 7.0 (no https))」を検索して選択する。
--開いたダイアログの次を押下し[[設定画面>OpenShiftの設定画面#s482a08a]]でアプリケーションのGitソースURIの設定を行う。
 https://gitlab.com/gshipley/nationalparks.git
--次へで終了すると、以下のようにビルドが開始される。
#ref(6.png,left,nowrap,手順6,60%)

-CLIを使用~
・・・

***ビルド確認 [#k0643ec5]
プロジェクトのビルドの完了後、ビルド結果を確認する。

-ポータルを使用
#ref(7.png,left,nowrap,手順7,60%)
--ビルドのステータスを確認できる。
--また、ログで動作の確認ができる。
--リンク押下でエンドポイントにアクセスして動作を確認できる。

-CLIを使用
--ビルドのステータスを確認できる。
 >oc get builds
 NAME        TYPE      FROM          STATUS     STARTED         DURATION
 eap-app-1   Source    Git@46aad91   Complete   6 minutes ago   3m3s

--また、ログで動作の確認ができる。
 >oc get pods
 NAME              READY     STATUS      RESTARTS   AGE
 eap-app-1-86dz6   1/1       Running     0          36m
 eap-app-1-build   0/1       Completed   0          39m
 
 >oc logs -f eap-app-1-86dz6
 INFO: Configuring JGroups discovery protocol to openshift.DNS_PING
 Using PicketBox SSL configuration.
 Missing SSO_URL. Unable to properly configure SSO-enabled applications
 Access log is disabled, ignoring configuration.
 Running jboss-eap-7/eap70-openshift image, version 1.7
 -Xms512m -Xmx512m -XX:+UseParallelGC -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40
 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MaxMetaspaceSize=100m -XX:+ExitOnOutOfMemoryError
 =========================================================================
 
   JBoss Bootstrap Environment
 
   JBOSS_HOME: /opt/eap
 
   JAVA: /usr/lib/jvm/java-1.8.0/bin/java

***エンドポイントにアクセス [#pb6dba13]
URL : http://eap-app-usertestdrive-nationalparks.XXX.XXX.XXX.XXX.nip.io
#ref(8.png,left,nowrap,手順8,30%)

-ポータルを使用~
リンク押下でエンドポイントにアクセスして動作を確認できる。

-CLIを使用~
以下のコマンドでエンドポイントを確認、コレにアクセスして動作を確認できる。
 >oc get routes
 NAME      HOST/PORT                                                   PATH      
 SERVICES   PORT      TERMINATION
 eap-app   eap-app-usertestdrive-nationalparks.XXX.XXX.XXX.XXX.nip.io             eap-app    <all>

**8 : MongoDBデータベースを追加 [#aef2381a]
ポイント

-永続化:EmptyDirをデータストレージに使用し永続化される。
-環境変数:
--MONGODB_USER
--MONGODB_PASSWORD
--MONGODB_DATABASE
--MONGODB_ADMIN_PASSWORD

***プロジェクトのビルド [#t5023b3f]
-MongoDBデータベースをusertestdrive-nationalparksプロジェクトに追加する。

--ポータルを使用
---[[ポータルを表示する>#zafdc4b2]]。
---[My Projects] -> 「usertestdrive-nationalparks」を選択する。
---[Add to Project]から[Browse Catalog]を選択する。
---「"mongodb-ephemeral" (MongoDB (Ephemeral))」を検索して選択する。
---開いたダイアログの次を押下し[[設定画面>OpenShiftの設定画面#ede6b602]]で接続情報欄を全て「mongodb」と入力する。
---次へで、接続情報のサマリが表示される。
 Username: mongodb
 Password: mongodb
 Database Name: mongodb
 Connection URL: mongodb://mongodb:mongodb@mongodb/mongodb
---終了すると、以下のようにデプロイが開始される。
#ref(9.png,left,nowrap,手順9,60%)

--CLIを使用~
・・・

***再配線 [#fd25ede0]
環境変数を使用してアプリケーションとMongoDBデータベースを再配線

-ポータルを使用~
・・・

-CLIを使用
--環境変数を設定する。
 >oc get dc
 NAME      REVISION   DESIRED   CURRENT   TRIGGERED BY
 eap-app   1          1         1         config,image(eap-app:latest)
 mongodb   1          1         1         config,image(mongodb:3.2)
 
 >oc env dc eap-app -e MONGODB_USER=mongodb -e MONGODB_PASSWORD=mongodb -e MONGODB_DATABASE=mongodb
 deploymentconfig "eap-app" updated

--環境変数の変更を確認する。~
dcの「REVISION」がインクリメントされる点に注目。
 >oc get dc
 NAME      REVISION   DESIRED   CURRENT   TRIGGERED BY
 eap-app   2          1         1         config,image(eap-app:latest)
 mongodb   1          1         1         config,image(mongodb:3.2)
 
 >oc get dc eap-app -o json
    "spec": {
        ・・・
        "template": {
            ・・・
            "spec": {
                ・・・
                "containers": [
                    {
                        ・・・
                        "env": [
                            {
                                "name": "MONGODB_DATABASE",
                                "value": "mongodb"
                            },
                            {
                                "name": "MONGODB_PASSWORD",
                                "value": "mongodb"
                            },
                            {
                                "name": "MONGODB_USER",
                                "value": "mongodb"
                            }
 >oc get rc
 NAME        DESIRED   CURRENT   READY     AGE
 eap-app-1   0         0         0         2h
 eap-app-2   1         1         1         10m
 mongodb-1   1         1         1         19m

***エンドポイントにアクセス [#a1b90616]
-URL : http://eap-app-usertestdrive-nationalparks.XXX.XXX.XXX.XXX.nip.io
-世界中のすべての国立公園がマップされていることを確認できる。
#ref(10.png,left,nowrap,手順10,30%)

**9 : [[テンプレート>OpenShift#z02ad51f]]の使用 [#f869c572]
-まず新しいプロジェクトを作成して
 >oc new-project nationalparks-template

-テンプレートをプロジェクトに追加~
( "metadata": { "name": "nationalparks-eap", ・・・ )
 >oc create -f https://gitlab.com/jorgemoralespou/openshift3nationalparks/raw/master/nationalparks-template-eap.json
 template "nationalparks-eap" created

-上記、読み込んだテンプレートを使用して[[サービス>OpenShift#l875353c]]を作成する。~
( この際、nameを指定し、GIT_URIを書き換える )
 >oc new-app nationalparks-eap --name=nationalparks –p GIT_URI=https://gitlab.com/gshipley/nationalparks.git
 --> Deploying template "nationalparks-template/nationalparks-eap" to project nationalparks-template
 
      nationalparks-eap
      ---------
      Application template for MLB Parks application on EAP 6 & MongoDB built using STI
 
      * With parameters:
         * APPLICATION_NAME=nationalparks
         * APPLICATION_HOSTNAME=
         * GIT_URI=https://gitlab.com/gshipley/nationalparks.git
         * GIT_REF=master
         * Maven mirror url=
         * MONGODB_DATABASE=root
         * MONGODB_NOPREALLOC=
         * MONGODB_SMALLFILES=
         * MONGODB_QUIET=
         * MONGODB_USER=user6wH # generated
         * MONGODB_PASSWORD=EMJQgkSS # generated
         * MONGODB_ADMIN_PASSWORD=BfgwtDdJ # generated
         * GITHUB_TRIGGER_SECRET=BF5dVxOe # generated
         * GENERIC_TRIGGER_SECRET=K1vwlRJh # generated
 
 --> Creating resources ...
     buildconfig "nationalparks" created
     imagestream "nationalparks" created
     deploymentconfig "nationalparks-mongodb" created
     deploymentconfig "nationalparks" created
     route "nationalparks" created
     service "mongodb" created
     service "nationalparks" created
     service "ping" created
 --> Success
     Build scheduled, use 'oc logs -f bc/nationalparks' to track its progress.
     Run 'oc status' to view your app.

-以下のコマンドでエンドポイントを確認、コレにアクセスして動作を確認できる。~
(エンドポイントが開くまで、暫く時間がかかった)
 >oc get routes
 NAME            HOST/PORT                                                    PATH      SERVICES        PORT      TERMINATION
 nationalparks   nationalparks-nationalparks-template.XXX.XXX.XXX.XXX.nip.io             nationalparks   <all>

**10 : コンテナ内のMongoコマンドラインシェルの使用 [#wf085210]

***[[ポッド>Kubernetes#j268603c]]上のMongoに接続 [#j7d43678]

-ポータルを使用
--[[ポータルを表示する>#zafdc4b2]]。
--[My Projects] -> 「usertestdrive-nationalparks」を選択する。
--[[ポッド>Kubernetes#j268603c]]を選択し、[コンソール]タブからコンソールを表示する。
--bashを使用して、[[ポッド>Kubernetes#j268603c]]内のMongoに接続
 >mongo -u mongodb -p mongodb mongodb

-CLIを使用

--接続先のMongoの[[ポッド>Kubernetes#j268603c]]の名称を取得する。
 >oc get pods

--bashを使用して、[[ポッド>Kubernetes#j268603c]]上のMongoに接続
---手動
 >oc exec -ti mongodb-1 -- bash -c 'mongo -u mongodb -p mongodb mongodb'
---自動(テンプレート)
 >oc exec -ti nationalparks-mongodb-1-xf5kn -- bash -c "mongo -u user6wH -p EMJQgkSS root"
 MongoDB shell version: 3.2.10
 connecting to: root
 Welcome http://docs.mongodb.org/
 Questions? Try the support group".
 For morehttp://groups.google.com/group/mongodb-user

***Mongoコマンドラインシェルを実行 [#bb1c9e29]

-データベースに追加された国立公園の数を数える。
 >db.parks.count();
 2740

-jsonドキュメントを表示することもできる。
 >db.parks.find();
 { "_id" : ObjectId("5b16032bf7c92700991bca3b"), "countryCode" : "ZW", "countryName" : "Zimbabwe", "pos" : [ -18.62987, 27.02104 ], "name" : "Hwange National Park Airport", "toponymName" : "Hwange National Park Airport" }
 ・・・

*[[セカンド・ステップ>OpenShiftセカンド・ステップ]] [#h09e1e82]

*参考 [#jcb9f653]

**世界のやまさ [#d9fbe3c6]
-Microsoft Azure Test Drive で Red Hat OpenShift が無料ですぐに試せた。~
http://blog.nnasaki.com/entry/2017/05/15/060000

-すべての製品 – Microsoft Azure Marketplace > アプリ >~
Red Hat OpenShift Container Platform > 体験版 > ユーザー マニュアル~
https://ctlabmgrstatesn.blob.core.windows.net/b6650c77787145419eb0f71f69f81048/user-manual.pdf

**銀の光と碧い空 [#j8dc2a6f]
-OpenShift で .NET Core 2.0を使いはじめる~
http://tech.tanaka733.net/entry/2017/09/06/OpenShift_%E3%81%A7_.NET_Core_2.0%E3%82%92%E4%BD%BF%E3%81%84%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B

***Red Hat Customer Portal [#jba12ca3]
-Getting Started Guide~
https://access.redhat.com/documentation/en-us/net_core/2.0/html/getting_started_guide/

-Chapter 2. .NET Core 2.0 on Red Hat OpenShift Container Platform~
https://access.redhat.com/documentation/en-us/net_core/2.0/html/getting_started_guide/gs_dotnet_on_openshift

--2.1. Install Image Streams
--2.2. Deploy Applications
--2.3. Configuration
--2.4. Sample Applications
--2.5. Create a Runtime Image

**その他 [#zb45a00b]
-Announcing .NET Core 2.0 Support for OpenShift – OpenShift Blog~
https://blog.openshift.com/announcing-net-core-2-0-support-openshift/
-Developing .NET Core 2.0 Web Applications on OpenShift - RHD Blog~
https://developers.redhat.com/blog/2017/11/22/developing-net-core-2-0-web-applications-openshift/

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS