type
status
date
slug
summary
tags
category
icon
password
书籍
ソリューション:マルチコンテナアプリケーションのデプロイ
このラボでは、OpenShiftテンプレートを使用して、PHPアプリケーションとMySQLデータベースをデプロイし、アプリケーションに必要なリソースを定義します。
成果物
複数のコンテナで構成されたOpenShiftアプリケーションを作成し、ウェブブラウザーを通じてアクセスできるようになります。
始める前に
第7章「OpenShift Container Platformのインストール」のラボをすべて完了し、マスターと2つのノードを持つOpenShift Container Platformクラスターが稼働している必要があります。もしまだ実施していない場合は、以下のコマンドを使用してマスター、ノード1、ノード2ホストをリセットし、作業ホストで環境が正しく設定されていることを確認してください。
クラスターが開始され、必要なファイルがダウンロードされることを確認するため、作業ホストで以下のコマンドを実行します。
1. OpenShiftクラスターにログインし、この演習用の新しいプロジェクトを作成
1.1. ワークステーションVMから、管理者ユーザーとしてログインします。
ターミナルウィンドウで以下のコマンドを実行します。
oc login
コマンドが「安全でない接続の使用」に関して尋ねてきた場合は、y
(はい)と答えます。1.2. OpenShiftで新しいプロジェクト「deploy」を作成します。
以下のコマンドを実行してプロジェクトを作成します。
1.3. デフォルトのクラスターセキュリティポリシーを緩和します。
適切な権限でコンテナを実行できるように、提供された
setpolicy.sh
シェルスクリプトを使用してセキュリティポリシーを設定します。2. データベースコンテナイメージのビルドとプライベートレジストリへの公開
2.1. 提供されたDockerfileとビルドスクリプトを使用してMySQLデータベースイメージをビルドします。
2.2. MySQLイメージをプライベートレジストリにプッシュします。
イメージにタグ「
registry.lab.example.com/do285/mysql-57-rhel7
」を付けて、プライベートレジストリにプッシュします。3. PHPコンテナイメージのビルドとプライベートレジストリへの公開
3.1. 提供されたDockerfileとビルドスクリプトを使用してPHPイメージをビルドします。
3.2. PHPイメージにタグを付けて、プライベートレジストリにプッシュします。
4. 提供されたテンプレートファイル
/home/student/DO285/labs/deploy-multicontainer/quote-php-template.json
を確認テンプレート内で定義されたポッド、サービス、および永続ボリュームクレームの設定を確認します。
5. アプリケーションに必要な永続ボリュームを作成
提供された
create-pv.sh
スクリプトを使用して永続ボリュームを作成します。6. PHPアプリケーションテンプレートをアップロード
以下のコマンドでテンプレートをプロジェクトにアップロードします。
7. アップロードしたテンプレートを処理してアプリケーションリソースを作成
7.1.
oc process
コマンドを使用してテンプレートファイルを処理し、結果を oc create
コマンドにパイプで送ってアプリケーションを作成します。7.2. デプロイのステータスを確認します。
8. サービスを公開
PHP Quoteアプリケーションを外部ネットワークからアクセスできるようにするため、
oc expose
コマンドでquote-phpサービスを公開します。9. アプリケーションのテスト
9.1.
oc get route
コマンドでアプリケーションが利用可能なFQDNを確認します。9.2.
curl
コマンドでPHP QuoteアプリケーションのREST APIをテストします。10. クリーンアップ
10.1. 演習で使用したプロジェクトを削除します。
10.2. 提供された
delete-pv.sh
スクリプトを使用して永続ボリュームを削除します。10.3. Dockerfileビルド時に生成したコンテナイメージを削除します。
これでラボは終了です。
概要
この章では、以下の内容を学びました:
- コンテナ化されたアプリケーションは、サービスを見つけるために固定IPアドレスやホスト名に依存することはできません。DockerとKubernetesは、ネットワーク接続パラメータを定義する環境変数を提供する仕組みを提供します。
- ユーザー定義のDockerネットワークを使用すると、コンテナは他のコンテナと名前で通信できるようになります。コンテナが相互に通信できるようにするためには、同じユーザー定義ネットワークに接続する必要があります。これには、
docker run
コマンドの-network
オプションを使用します。
- Kubernetesサービスは、同じプロジェクト内のすべてのポッドに注入される環境変数を定義します。
- Kubernetesのテンプレートは、サービスによって相互接続された複数のポッドから構成されるアプリケーションを自動的に作成します。
- テンプレートパラメータは、複数のポッドに対する環境変数を定義します。
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/1a7d7ae8-88e2-80cf-85c2-cc16c96d38e7
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章