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'出力例
--> Found container image 0c2f55f (4 years old) from quay.io for "quay.io/openshiftroadshow/parksmap:latest" * An image stream tag will be created as "parksmap:latest" that will track this image --> Creating resources with label app=national-parks-app,app.kubernetes.io/part-of=national-parks-app,component=parksmap,role=frontend ... imagestream.image.openshift.io "parksmap" created deployment.apps "parksmap" created service "parksmap" created --> Success Application is not exposed. You can expose services to the outside world by executing one or more of the commands below: 'oc expose service/parksmap' Run 'oc status' to view your app.
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 get route parksmap出力例
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None
3.4.2. Pod の詳細を表示する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、Pod の Kubernetes の概念を活用しています。これは、1 つのホストにともにデプロイされる 1 つ以上のコンテナーであり、定義、デプロイ、管理できる最小のコンピュート単位です。Pod は、コンテナーに対して、(物理または仮想) マシンインスタンスとほぼ同等のものです。
クラスターの Pod を表示し、それらの Pod およびクラスター全体としての正常性を判別できます。
前提条件
-
parksmapフロントエンドアプリケーションをデプロイしている。
手順
次のコマンドを実行して、現在のプロジェクト内のすべての Pod をリスト表示します。
$ oc get pods出力例
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 77s次のコマンドを実行して、Pod の詳細を表示します。
$ oc describe pod parksmap-5f9579955-6sng8出力例
Name: parksmap-5f9579955-6sng8 Namespace: user-getting-started Priority: 0 Service Account: default Node: ci-ln-fr1rt92-72292-4fzf9-worker-a-g9g7c/10.0.128.4 Start Time: Wed, 26 Mar 2025 14:03:19 -0400 Labels: app=national-parks-app app.kubernetes.io/part-of=national-parks-app component=parksmap deployment=parksmap pod-template-hash=848bd4954b role=frontend ...次のコマンドを実行して、Pod のログを表示します。
$ oc logs parksmap-5f9579955-6sng8出力例
... 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)
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出力例
deployment.apps/parksmap scaled
検証
次のコマンドを実行して、デプロイメントが適切にスケールアップされたことを確認します。
$ oc get pods出力例
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 7m39s parksmap-5f9579955-8tgft 1/1 Running 0 24s2 つの
parksmapPod がリスト表示されていることを確認します。
デプロイメントを 1 つの Pod インスタンスにスケールダウンするには、--replicas オプションに 1 を渡します。
$ oc scale --replicas=1 deployment/parksmap