3.4. フロントエンドアプリケーションのデプロイ
OpenShift Container Platform でアプリケーションをデプロイする最も簡単な方法は、提供されているコンテナーイメージを実行することです。
次の手順では、national-parks-app
アプリケーションのフロントエンドコンポーネントである parksmap
をデプロイします。この Web アプリケーションは、世界中の国立公園の位置を示すインタラクティブマップを表示します。
前提条件
- OpenShift Container Platform クラスターにアクセスできる。
-
OpenShift CLI (
oc
) がインストールされている。
手順
次のコマンドを実行して、
parksmap
アプリケーションをデプロイします。oc new-app quay.io/openshiftroadshow/parksmap:latest --name=parksmap -l 'app=national-parks-app,component=parksmap,role=frontend,app.kubernetes.io/part-of=national-parks-app'
$ oc new-app quay.io/openshiftroadshow/parksmap:latest --name=parksmap -l 'app=national-parks-app,component=parksmap,role=frontend,app.kubernetes.io/part-of=national-parks-app'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.1. フロントエンドサービスの公開 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift Container Platform で実行されているサービスは外部からアクセスできません。
外部クライアントがアクセスできるようにサービスを公開するには、ルート を作成します。Route
オブジェクトは、Kubernetes Ingress
オブジェクトに似た OpenShift Container Platform ネットワークリソースです。デフォルトの OpenShift Container Platform ルーター (HAProxy) は、受信リクエストの HTTP ヘッダーを使用して、接続をプロキシー処理する場所を決定します。
オプションとして、ルートに TLS などのセキュリティーを定義できます。
前提条件
-
parksmap
フロントエンドアプリケーションをデプロイしている。 -
cluster-admin
またはプロジェクトレベルのadmin
特権がある。
手順
次のコマンドを実行して、
parksmap
フロントエンドアプリケーションを公開するためのルートを作成します。oc create route edge parksmap --service=parksmap
$ oc create route edge parksmap --service=parksmap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、アプリケーションルートが正常に作成されたことを確認します。
oc get route parksmap
$ oc get route parksmap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. Pod の詳細を表示する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、Pod の Kubernetes の概念を活用しています。これは、1 つのホストにともにデプロイされる 1 つ以上のコンテナーであり、定義、デプロイ、管理できる最小のコンピュート単位です。Pod は、コンテナーに対して、(物理または仮想) マシンインスタンスとほぼ同等のものです。
クラスターの Pod を表示し、それらの Pod およびクラスター全体としての正常性を判別できます。
前提条件
-
parksmap
フロントエンドアプリケーションをデプロイしている。
手順
次のコマンドを実行して、現在のプロジェクト内のすべての Pod をリスト表示します。
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 77s
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 77s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Pod の詳細を表示します。
oc describe pod parksmap-5f9579955-6sng8
$ oc describe pod parksmap-5f9579955-6sng8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Pod のログを表示します。
oc logs parksmap-5f9579955-6sng8
$ oc logs parksmap-5f9579955-6sng8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
... 2025-03-26 18:03:24.774 INFO 1 --- [ main] o.s.m.s.b.SimpleBrokerMessageHandler : Started. 2025-03-26 18:03:24.798 INFO 1 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2025-03-26 18:03:24.801 INFO 1 --- [ main] c.o.evg.roadshow.ParksMapApplication : Started ParksMapApplication in 4.053 seconds (JVM running for 4.46)
... 2025-03-26 18:03:24.774 INFO 1 --- [ main] o.s.m.s.b.SimpleBrokerMessageHandler : Started. 2025-03-26 18:03:24.798 INFO 1 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2025-03-26 18:03:24.801 INFO 1 --- [ main] c.o.evg.roadshow.ParksMapApplication : Started ParksMapApplication in 4.053 seconds (JVM running for 4.46)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.3. デプロイメントのスケールアップ リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes では、Deployment
オブジェクトはアプリケーションのデプロイメント方法を定義します。ほとんどの場合、アプリケーションをデプロイすると、OpenShift Container Platform によって Pod
、Service
、ReplicaSet
、および Deployment
リソースが作成されます。
parksmap
イメージをデプロイすると、デプロイメントリソースが作成されます。この例では、1 つの Pod のみがデプロイされます。ユーザーの需要に応えるため、または 1 つの Pod がダウンした場合でもアプリケーションが常に実行されるようにするために、アプリケーションをスケールアップする必要がある場合があります。
次の手順では、parksmap
のデプロイメントをスケーリングして 2 つのインスタンスを使用します。
前提条件
-
parksmap
フロントエンドアプリケーションをデプロイしている。
手順
次のコマンドを実行して、デプロイメントを 1 つの Pod インスタンスから 2 つの Pod インスタンスにスケーリングします。
oc scale --replicas=2 deployment/parksmap
$ oc scale --replicas=2 deployment/parksmap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/parksmap scaled
deployment.apps/parksmap scaled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、デプロイメントが適切にスケールアップされたことを確認します。
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 7m39s parksmap-5f9579955-8tgft 1/1 Running 0 24s
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 7m39s parksmap-5f9579955-8tgft 1/1 Running 0 24s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 2 つの
parksmap
Pod がリスト表示されていることを確認します。
デプロイメントを 1 つの Pod インスタンスにスケールダウンするには、--replicas
オプションに 1
を渡します。
oc scale --replicas=1 deployment/parksmap
$ oc scale --replicas=1 deployment/parksmap