type
status
date
slug
summary
tags
category
icon
password
书籍

目標

デプロイされたアプリケーションを管理するためにリソースを操作する。

目的

  • Podのレプリカ数を制御する。
  • Podのスケジューリング方法を説明し、制御する。
  • アプリケーションのビルドに使用されるイメージ、イメージストリーム、およびテンプレートを管理する。

セクション

  • アプリケーションのスケーリング(および実践演習)
  • Podのスケジューリング制御(および実践演習)
  • イメージ、イメージストリーム、およびテンプレートの管理(および実践演習)

ラボ

  • アプリケーションデプロイメントの管理

アプリケーションのスケーリング

目的

このセクションを完了すると、Pod のレプリカ数を制御できるようになります。

レプリケーションコントローラー

レプリケーションコントローラーは、指定された数のPodが常に稼働していることを保証します。
  • Podが削除されたり管理者によって明示的に削除された場合、新たなPodを作成します。
  • 逆に、実行中のPodの数が指定されたレプリカ数を超えた場合、不要なPodを削除して調整します。

レプリケーションコントローラーの主な構成要素

  1. 希望するレプリカ数
  1. レプリケートするPodの定義
  1. 管理対象のPodを識別するセレクター
セレクターは、レプリケーションコントローラーが管理するすべてのPodが持つべきラベルの集合です。
また、レプリケーションコントローラーが新しく作成するPodの定義にも同じラベルを含める必要があります。
このセレクターを使って、すでに実行中のPodの数を把握し、適切にスケール調整を行います。
注意:
レプリケーションコントローラーは自動スケーリングを行いません。負荷やトラフィックを監視しないためです。
水平Podオートスケーラー(Horizontal Pod Autoscaler) を使用すると、後述の方法で自動スケーリングを実現できます。
Kubernetesの管理者は通常、レプリケーションコントローラーを直接管理しますが、OpenShiftの推奨方法は、デプロイメント設定(DeploymentConfig) を利用し、レプリケーションコントローラーを必要に応じて作成・変更することです。

デプロイメント設定からのレプリケーションコントローラーの作成

OpenShiftでアプリケーションを作成する最も一般的な方法は、以下のいずれかです。
  • oc new-app コマンドを使用する
  • Webコンソールを利用する
この方法で作成されたアプリケーションは、DeploymentConfig リソースを使用します。
このリソースが実行時にレプリケーションコントローラーを作成し、アプリケーションのPodを管理します。

DeploymentConfig の役割

  • 作成するPodのレプリカ数を定義する
  • 作成するPodのテンプレートを指定する
重要:
DeploymentConfigReplicationControllertemplate 属性と、OpenShift の**テンプレートリソース(Template Resource)**を混同しないように注意してください。
後者は、特定のプログラミング言語やフレームワークに基づいてアプリケーションを構築するためのものです。

MySQLデータベースのDeploymentConfigの例

以下は、oc new-app コマンドを使用して作成された MySQL データベースコンテナの DeploymentConfig リソースの例です。
ポイント:
  • replicas: Podのレプリカ数を指定する。
  • selector: Podのカウントに使用され、サービスのロードバランスにも使われる。
  • template: レプリケーションコントローラーが作成するPodのテンプレート。
  • labels: 作成されるPodのラベルは、selector のラベルと一致する必要がある。

アプリケーションのレプリカ数を変更する

DeploymentConfig または ReplicationController リソースのレプリカ数は、oc scale コマンドを使用して動的に変更できます。
DeploymentConfig リソースは、この変更を ReplicationController に伝え、ReplicationController は新しい Pod(レプリカ)を作成したり、既存の Pod を削除したりして、指定された数に調整します。
ReplicationController リソースを直接操作することも可能ですが、推奨される方法は DeploymentConfig を操作することです。なぜなら、コンテナイメージの新しいリリースによってデプロイがトリガーされると、ReplicationController の直接の変更が失われる可能性があるためです。

Pod のオートスケール(自動スケール)

OpenShift では、HorizontalPodAutoscaler(HPA) リソースを使用して、アプリケーションの負荷に応じて DeploymentConfig のスケールを自動化できます。
HPA は、OpenShift の メトリクスサブシステム(Metrics Subsystem) が収集したパフォーマンスデータを基に動作します。本書の後半で説明しますが、特に Heapster コンポーネント がないとオートスケールは機能しません。
HPA を作成する推奨方法は、oc autoscale コマンドを使用することです。
このコマンドは、CPU 使用率を 80% 以下に保つように、myapp の DeploymentConfig のレプリカ数を調整する HorizontalPodAutoscaler リソースを作成します。
  • 最小・最大レプリカ数(--min, --max) を設定することで、急な負荷増加に対応しつつ、OpenShift クラスタが過負荷にならないように調整できます。
  • 負荷の変動が大きい場合は、あらかじめ一定数の Pod を用意しておくことを推奨します。逆に、レプリカ数が多すぎると、クラスタのリソースを圧迫し、他のアプリケーションに影響を与える可能性があります。
HPA リソースの情報を取得するには、oc get および oc describe コマンドを使用します。
注意
HPA は、Pod が適切な リソースリクエスト(resource requests) を定義している場合にのみ機能します(リソースリクエストの詳細は後述)。
oc new-app コマンドで作成した Pod は、デフォルトではリソースリクエストを定義していないことが多いため、HPA を使用する場合は、カスタム YAML や JSON ファイルを作成するか、プロジェクトにリソース範囲(resource range)を設定する必要があります
📖 参考情報
 
相关文章
RedHat EX200 本番近い試験問題集
Lazy loaded image
RedHat EX200 本番試験問題集(有料版)
Lazy loaded image
82- 第17章:導入総復習-3:OpenShiftにマルチコンテナデプロイのラボ
Lazy loaded image
81- 第17章:導入総復習-2:docker,KubernetesおよびOpenShiftのラボ
Lazy loaded image
80- 第17章:導入総復習-1:総合レビュー
Lazy loaded image
79- 第16章:OpenShiftの管理と監視-8:ラボ
Lazy loaded image
61- 第14章:アプリケーションデプロイメントの管理-2:アプリケーションスケーリングの演習59- 第13章:永続ストレージの割り当て-4:ラボ
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
TOKYO自習島
2025-4-27
第1回:イントロダクション
2025-4-21
第1回:イントロダクション
2025-4-18
第1回:オリエンテーション/意思決定と会計情報
2025-4-18
建物業法の基本と免許-59問
2025-4-10
宅建士过去问速刷:小南小白陪你拿证-001
2025-4-7
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享我在 IT・MBA・不动产中介 等领域的学习与实践经验,并推动 线上线下学习会 的自主开展。

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!