type
Post
status
Published
date
Feb 20, 2025
slug
summary
tags
DO285
Redhat
EX280
学習ノート
category
民間資格勉強
icon
password
ワークショップインストール後のタスクの完了
この演習では、OpenShift Container Platform クラスターのインストール後の基本機能をテストします。
成果物
次のことができるようになります:
- 管理者ユーザーをクラスター管理者として設定する。
- OpenShift クライアント(
oc)を使用してクラスターのステータスを取得する。
- OpenShift 上でシンプルなアプリケーションをビルドしてデプロイし、クラスターの機能をテストする。
始める前に
「インストール準備」と「Red Hat OpenShift Container Platform のインストール」のガイド付き演習を完了している必要があります。まだ完了していない場合は、
master、node1、node2 ホストをリセットし、次のコマンドをワークステーションホストで実行してください:このガイド付き演習に必要なファイルをダウンロードし、
master、node1、node2 ホストが起動していることを確認するには、ターミナルを開き、次のコマンドを実行します:- ワークステーションから、
adminユーザーとして OpenShift クラスターにログインします。 1.1. ワークステーションからocコマンドを使用して、adminユーザーとしてクラスターにログインします。
ログイン成功。
「プロジェクトがありません。新しいプロジェクトを作成するには、
oc new-project <projectname> を実行してください。」ようこそ! 'oc help' を参照して、始めましょう。
-insecure-skip-tls-verify=trueオプションは、インストール時に生成された自己署名証明書を受け入れます。
1.2. OpenShift ノードのステータスを取得してみる
エラー発生:
このコマンドは失敗することが想定されています。理由は、
admin ユーザーが cluster-admin ロールに関連付けられていないためです。2. admin ユーザーに cluster-admin ロールを割り当てる
2.1. ワークステーションから master ホストに SSH でログインし、sudo を使って root ユーザーになります。
2.2. system:admin ユーザーが OpenShift API に認証されていることを確認します。
2.3. admin ユーザーに cluster-admin ロールを割り当てます。
2.4. master ホストからログアウトします。
これで、
admin ユーザーを使用してワークステーションマシンからリモートでクラスター管理タスクを実行できるようになります。3. oc get コマンドを使用して OpenShift クラスターの基本的な動作確認を行う
3.1. admin ユーザーとして OpenShift クラスターにログインします。(プロンプトが表示されたら、パスワードに redhat を入力)
これで、
admin ユーザーとして OpenShift クラスターの管理操作ができるようになります。3.2. oc get nodes コマンドを使用して、すべてのノードが Ready 状態であることを確認する
node1 と node2 のロールが compute になっていることから、インベントリファイルに定義されたノードのラベルが正しく適用されていることが確認できます。3.3. oc get pods コマンドを使用して、内部レジストリとルーターポッドが Running 状態であることを確認する
すべての
docker-registry、registry-console、router のポッドが Running になっていることを確認します。4. クラスターの機能をテストするために、developer ユーザーとして S2I ビルドを実行する
4.1. developer ユーザーとして OpenShift クラスターにログインする
パスワードとして
redhat を入力します。これで、
developer ユーザーとしてクラスターにログインできました。4.2. smoke-test という名前の新しいプロジェクトを作成する
smoke-test プロジェクトが作成され、現在のプロジェクトとして設定されました。4.3. S2Iビルドを実行し、PHP 5.6の php-helloworld アプリケーションをデプロイする
アプリケーションのソースコードは
http://services.lab.example.com/php-helloworld にあります。💡
--name hello オプションにより、アプリケーションのリソース名が phphelloworld ではなく hello に短縮され、デプロイ後のFQDN(完全修飾ドメイン名)も短くなります。4.4. oc logs -f コマンドでビルドプロセスを監視する
このコマンドは即座に完了せず、ビルドプロセスが完了するまで数秒間実行されます。
出力の例:
💡 この出力から、OpenShift が以下の処理を正しく実行できていることがわかります:
- ソースコードのクローン作成
- アプリケーションのビルド
- 内部レジストリへのイメージのプッシュ
4.5. hello サービスをルートとして公開する
💡
oc expose コマンドを使うと、外部アクセス用のルートが作成されます。4.6. 公開された hello サービスのルートを確認する
💡
hello-smoke-test.apps.lab.example.com が、外部からアクセスできるアプリケーションのURLです。まとめ
方法 | OpenShift クラスター内部アクセス | クラスター外部(社内ネットワーク)アクセス | インターネットアクセス |
ClusterIP | ✅ アクセス可能 ( curl http://hello:8080) | ❌ アクセス不可 | ❌ アクセス不可 |
Route | ✅ アクセス可能 ( curl http://hello:8080) | ✅ アクセス可能 ( curl http://hello-smoke-test.apps.lab.example.com) | 🌐 OpenShift Router の設定による |
LoadBalancer | ✅ アクセス可能 | ✅ アクセス可能 | 🌐 パブリックIPの有無による ( curl http://203.0.113.100:8080) |
NodePort | ✅ アクセス可能 | ✅ アクセス可能 ( curl http://<node-ip>:30080) | ❌ 通常、直接公開されない |
結論
ClusterIPは OpenShift クラスター内部 でのみアクセス可能。
Routeを使うとクラスター外部(社内ネットワークなど)からアクセスできるが、インターネットからアクセスできるかどうかは OpenShift Router の設定次第。
NodePortは OpenShift の ノードが属するネットワーク(通常は社内ネットワーク)でアクセス可能 だが、通常インターネットには公開されない。
LoadBalancerは パブリックIPが割り当てられればインターネットからアクセス可能。
OpenShift Router を外部に公開する方法は 2 つ あります。
方法 | 適用環境 | 仕組み | 適用ケース |
1. LoadBalancer(推奨) | クラウド環境(AWS, GCP, Azure など) | OpenShift Router の Service タイプを LoadBalancer に変更し、クラウドプロバイダーが自動でパブリック IP を割り当てる | クラウド環境向け、運用が簡単 |
2. NodePort(手動設定) | オンプレミス環境(物理サーバー)や一部のクラウド環境 | OpenShift Router の Service タイプを NodePort に変更し、手動でノードのポートを公開 | 非クラウド環境向け、ファイアウォール設定が必要 |
4.7. curl コマンドを使用して、アプリケーションが正しく応答することを確認する
✅ アプリケーションが正しくデプロイされ、動作していることが確認できました!
これで、OpenShift の基本的なインストール確認およびデプロイ手順のガイド付き演習が完了です。
要約
この章では、以下の内容を学びました:
- Ansible Playbook を使用して OpenShift Container Platform のインストール環境を準備する方法
- 適切なホストグループ、グループ変数、およびホスト変数を設定した OpenShift の高度なインストール用インベントリファイルの構成方法
- OpenShift の高度なインストール用 Ansible Playbook を使用して、マスターおよびノードサーバーを設定する方法
- ソースコードからアプリケーションを作成し、OpenShift にデプロイすることで、動作中の OpenShift クラスターを検証する方法
- Author:minami
- URL:https://www.minami.ac.cn/private-license/1a6d7ae8-88e2-80c3-941e-ec060767d141
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts





