OpenShift Lab

演習の概要

このモジュールでは、OpenShiftを利用して簡単なWebサーバをデプロイします。


OpenShift環境へのログインとアプリケーション作成

前の演習では、Podmanを利用した簡単なWebサーバをデプロイしました。本演習ではOpenShiftを利用して同様のことを実施してみます。 OpenShiftのWebコンソールにアクセスして、ログインします。 OpenShiftのWebコンソールのURLとアカウント情報は、インストラクターから案内されます。

本演習を自習する場合、OpenShiftの環境をご自身でご用意ください。
login

最初にアプリケーションの開発やデプロイ場所となる「プロジェクト」を作成する必要があります。 OpenShiftでは「プロジェクト」単位でアプリケーションなどのリソースを分離する、 マルチテナンシー的な利用方法がデフォルトで可能になっています。

「新規プロジェクトを作成します」をクリックして、適当なプロジェクト名(この例では test-project99 )を入力して「作成」をクリックします。

複数人でOpenShiftクラスターを共有している場合、プロジェクト名の重複はできませんので、重複しないような名前を付けてください。
project create

プロジェクトの作成が完了すると、OpenShiftに標準で用意されているサンプルのテンプレートを利用して、 アプリケーションを作成するためのスタートアップリソースが表示されます。

startup resource

今回はこれらのリソースを利用せずに、既存のGitHubのPHPサンプルコードを利用して、Webアプリケーションをデプロイしてみます。 コンソール右上にある「+」アイコンをクリックして、「Gitからのインポート」を選択します。

git import01

続いて、下記のテキストフィールドに以下を入力します。 「検証済み」の表示を確認したら、「作成」ボタンをクリックします。 これだけでサンプルアプリケーションのデプロイが完了します。

git import02
OpenShiftではGitリポジトリのソースコードURLを指定すると、JavaやPHPなどの主要言語であれば、 OpenShiftに標準で備わっている専用コンテナを利用して、ユーザーアプリのコンテナイメージを自動作成してくれます。

しばらく待つと、「php-hello-world-git-app」という名前のアプリケーションが作成されたことが、 トポロジー画面から確認できます。

topology01

トポロジー画面の「php」アイコンをクリックして、「リソース」タブの「Routes」にあるURLから、 PHPのサンプルWebアプリケーションにアクセスできます。アクセスすると、以下のようなメッセージが確認できます。

Hello Podman 2025-12-25

Host Name: php-hello-world-6db8695b55-q24wl
Host IP: 10.128.0.236
ここで表示されているIPアドレスは、OpenShift上のコンテナ( Kubernetes Pod)に、動的に割り当てられたIPアドレスとなります。 OpenShiftでは、コンテナ間通信を行うためのネットワークが自動作成されて利用されます。

トポロジー画面右にある「ログの表示」をクリックすると、「php-hello-wold」コンテナを作成した時のログを確認できます。 Podmanの演習の時に確認できた、Containerfileからのカスタムイメージ作成のようなログなどを確認できます。

build log

OpenShiftでのアプリケーション更改

この演習は、ユーザーが利用可能なGitリポジトリが無い場合は実施できません。

Gitリポジトリのソースコードを修正してコミットした場合、 コンテナイメージを再ビルドすることで、コミットしたソースコードが反映されたアプリケーションをデプロイできます。 この時は、トポロジー画面の対象のアプリケーションの「ビルドの開始」ボタンをクリックします。

topology02
前回のビルドで保存されたコンテナイメージにインクリメンタルビルド(増分ビルド)を行うことで、 前回から変更があったファイルだけがビルド対象となり、ビルドを効率的に実施しています。 これらのイメージは、OpenShift標準機能の1つである 内部コンテナレジストリに保存されます。

再び「リソース」タブの「Routes」にあるURLから、PHPのサンプルWebアプリケーションにアクセスすると、 次の例のような変更後のメッセージ出力を確認できます。 この時、イメージの再ビルドに伴ってコンテナも再起動されているので、コンテナのIPアドレスも変更されています。

Hello Podman 2025-12-25 Changed

Host Name: php-hello-world-6f678646-jvwc7
Host IP: 10.128.0.253