type
status
date
slug
summary
tags
category
icon
password
书籍
ガイド付き演習
ソフトウェア定義ネットワーキングの探索
この演習では、複数のアプリケーションポッドをデプロイし、OpenShiftのソフトウェア定義ネットワーキング機能を確認します。
結果
以下の内容ができるようになります:
- クラスター内のポッドIPアドレスを直接使用してアクセスする。
- OpenShiftのサービスIPアドレスを使ってクラスター内からアクセスする。
- クラスター外部からノードポートを使用してアクセスする。
開始前の準備
Chapter 7「OpenShift Container Platformのインストール」のすべてのラボを完了し、マスターと2つのノードを持つOpenShift Container Platformクラスターが稼働している必要があります。まだ準備ができていない場合は、マスター、node1、node2ホストをリセットし、以下のコマンドをワークステーションホストで実行して環境を正しくセットアップしてください:
マスター、node1、node2ホストが起動していることを確認し、このガイド付き演習に必要なファイルをダウンロードするには、ワークステーションで次のコマンドを実行します:
1. 新しいプロジェクトを作成する
1.1. ワークステーションVMから、OpenShiftマスター(https://master.lab.example.com)にOpenShiftクライアントでアクセスします。
「developer」としてログインし、証明書が表示された場合は受け入れます。
1.2.
network-test
という名前のプロジェクトを作成します。2. テストアプリケーションの複数ポッドをデプロイする
2.1. プライベートレジストリからスケーリングアプリケーションをデプロイします。
このアプリケーションはポート8080で実行され、ホストのIPアドレスを表示します。環境内では、これはアプリケーションを実行しているポッドのIPアドレスに対応します:
2.2. 次のコマンドを実行して、アプリケーションポッドが準備できて実行中であることを確認します。ポッドのビルドとデプロイには時間がかかります。
コマンドの出力は次のようになります:
2.3. 次に、
oc scale
コマンドを使用してアプリケーションを2つのポッドにスケールします。注意
アプリケーションをスケールするには最大で3分かかる場合があります。
2.4. 現在、2つのポッドが実行されているのが確認できるはずです。通常、1つのポッドは各ノードに配置されます:
注意
ポッドのIPアドレスは、システムによって異なる場合があります。
3. アプリケーションがワークステーションからアクセスできないことを確認する
前のステップでリストされたIPアドレスを使用して、ワークステーションからアプリケーションがアクセスできないことを確認します。
ポッドのIPアドレスはクラスター外からは到達できません。
4. アプリケーションが個別のポッドIPアドレスを使用してアクセス可能であることを確認する
4.1. ワークステーションで新しいターミナルを2つ開き、
node1
とnode2
にSSHで接続します:4.2.
node1
とnode2
で、それぞれのIPアドレスを使用してアプリケーションがアクセス可能であることを確認します:5. サービスIPアドレス(クラスターIP)を使用してアプリケーションがアクセス可能であることを確認する
5.1. ワークステーションVMから、
oc get svc
コマンドを使用してサービスIPアドレスを確認します:注意
クラスターIPアドレスは、システムによって異なる場合があります。
5.2. クラスターIPアドレスを使用して、ワークステーションからアプリケーションがアクセスできないことを確認します:
CLUSTER-IP のサービスは自動的に作成されます。
5.3. クラスターIPアドレスを使用して、マスター、node1、またはnode2からアプリケーションがアクセス可能であることを確認する
ワークステーションからクラスターIPにアクセスできなかった場合でも、
node1
などのノードからはアクセスできるかを確認します。以下のコマンドを使って、node1
からクラスターIPにアクセスしてみます:正常にアクセスできた場合、アプリケーションのホストIPが表示されます:
5.4. クラスターIPのURLに対して複数回HTTPリクエストを送信し、リクエストがラウンドロビン方式で2つのポッドに負荷分散されることを確認する
次に、
node1
からさらにリクエストを送信し、アプリケーションが複数のポッドにラウンドロビンでリクエストを負荷分散していることを確認します:リクエストを送るたびに異なるポッドが応答することが確認できるはずです。
5.5. アプリケーションのサービスを検査する
oc describe svc
コマンドを使って hello
サービスの詳細情報を表示します:この出力から、
Endpoints
属性にリストされているポッドのIPアドレス(10.128.0.24
と 10.129.0.20
)がリクエストを受け取る先であることが分かります。これらのエンドポイントは、ポッドが終了したり新しいポッドが作成されたりすると、自動的に更新されます。OpenShiftはポッドに定義されたセレクタとラベルを使用して、クラスターIPを持つアプリケーションの負荷分散を行います。リクエストは、ラベル
app=hello
と deploymentconfig=hello
が付けられたすべてのポッドにルーティングされます。ポッドのラベルが正しく設定されていることを確認するために、ポッドの詳細を表示します:
6. クラスター外からアプリケーションにアクセスできるようにする
アプリケーションのサービス設定を変更して、サービスのタイプを NodePort に変更します。
6.1. サービス設定を変更する
oc edit svc
コマンドを使用して、アプリケーションのサービス設定を編集します:このコマンドにより、
vi
エディタが開き、サービスの設定がYAML形式で表示されます。サービスのタイプを NodePort
に変更し、ポート配列に新しい属性 nodePort
を追加して、値を 30800
に設定します:vi
エディタで編集が完了したら、:wq
と入力して保存して終了します。6.2. 変更を確認する
設定変更後、
oc describe svc
コマンドを再度実行して変更が反映されていることを確認します:この設定により、外部クライアントが
NodePort
を通じてアプリケーションにアクセスできるようになります。6.3. ワークステーションVMからNodePortを使用してアプリケーションにアクセスする
次に、ワークステーションVMから、NodePort IPアドレスを使用してアプリケーションにアクセスします:
これで、外部からクラスター内のアプリケーションにアクセスできるようになります。
アプリケーションがクラスター外からアクセス可能であり、リクエストがポッド間で負荷分散されていることを確認
node1
と node2
のそれぞれの NodePort にアクセスして、リクエストが異なるポッドに負荷分散されることを確認します:これにより、アプリケーションがクラスター外からアクセスでき、リクエストが適切にポッド間でラウンドロビン方式で負荷分散されることが確認できます。
7. ポッドから外部ネットワークへのトラフィックの確認
外部ネットワークへの送信トラフィック(ポッドから外部へ出るトラフィック)を確認するため、
oc rsh
コマンドを使用してポッド内にシェルを開きます。7.1.
oc rsh
コマンドでポッド内にシェルを開く 指定したポッド(例えば
hello-1-4bb1t
)にアクセスします:7.2. ポッドから外部のマシンにアクセス
ポッド内から、OpenShiftクラスター外のサービス(例えば、
services.lab.example.com
にホストされている Git リポジトリ)にアクセスして、ポッドが外部にアクセスできることを確認します:これで、ポッドがクラスター外のリソースにアクセスできることを確認できます。
7.3. ポッドシェルから退出
シェルを終了して、ワークステーションのプロンプトに戻ります:
クリーンアップ
最後に、
network-test
プロジェクトを削除してクリーンアップします:これで、ガイド付き演習が完了します。
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/140d7ae8-88e2-8067-8e76-e8b856235b4b
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章