コンテナ

「Kubernetes」のPodが使用できるCPUリソースを制限するには

「Kubernetes」のPodが使用できるCPUの制限範囲を設定する方法を解説する。

 「Kubernetes」の「Pod」やコンテナーを作成すると、デフォルトでは、クラスターのリソースに無制限にアクセスできる。これには、良い点と悪い点が両方ある。良い点は、コンテナーが必要なすべてのリソースを常に利用できることである。悪い点は、コンテナーがクラスター内のすべてのリソースを消費してしまう可能性があることだ。

 それを避けたい人もいるかもしれない。業務を快適に進めるために、重要なコンテナーを格納するPodを多数展開している場合は、特にそうだろう。

 その場合は、どうすればいいのだろうか。

 PodのCPUの制限範囲を設定するといい。

 これは実際には非常に単純なタスクである。名前空間で制限範囲を定義するからだ。本記事では、デフォルトの名前空間でCPU制限を定義する手順を説明する。それを理解すれば、すべての名前空間でこのオプションの使用を開始できるようになる。

必要なもの

 これを機能させるために必要なのは、実行中のKubernetesクラスターだけだ。1つのコントローラーと3つのノードを使用して説明を進めるが、すべての作業はコントローラー上で実行する。

CPUの制限範囲を設定する方法

 新しいYAMLファイルを作成して、デフォルトの名前空間でコンテナーの制限範囲を設定する。ターミナルウィンドウを開いて、以下のコマンドを実行する。

nano limit-range.yml

 このYAMLファイルの重要なオプションは、kindとcpuだ。kindには、LimitRangeを使用する。これは名前空間内のリソース割り当て(Podやコンテナー)を制限するポリシーだ。cpuオプションは制限する対象を定義する。memoryオプションを使用して、使用可能なメモリーの量を制限することも可能だが、ここではcpuを使用する。

 YAMLファイルの内容は以下のようになる。

apiVersion: v1
kind: LimitRange
metadata:
  name: limit-range
spec:
  limits:
  - max:
      cpu: "1"
    min:
      cpu: "200m"
    type: Container

 CPUでは、milliCPUまたはcpuのみを使用して、2つの方法で制限が可能だ。ここでは、cpuの最大値を1 CPU、最小値を200 milliCPU(またはm)に制限している。ファイルへの書き込みが完了したら、保存して閉じる。

 YAMLファイルを適用する前に、以下のコマンドを実行して、範囲制限がすでに設定されているかどうかを確認してほしい。

kubectl get limitrange

 上記のコマンドを実行しても、何も報告されないはずだ。

 次に、以下のコマンドを実行して、limitrangeを作成する。

kubectl create -f limit-range.yml

 チェックを再実行すると、limit-rangeという名前と、それが作成された日時が報告されるはずだ。次に、以下のコマンドを実行して、適切な範囲制限が設定されていることを確認できる。

kubectl describe limitrange limit-range

 最小値が200m、最大値が1に設定されているはずだ(図A)。

図A

KubernetesクラスターのCPUの範囲制限を設定することに成功した。
KubernetesクラスターのCPUの範囲制限を設定することに成功した。

 コンテナーが利用できるKubernetesクラスターのCPUリソースの最大値と最小値を設定する方法の説明は、以上である。この機能を利用すれば、コンテナーが十分なCPUリソースを常に利用できる状態を維持する一方で、クラスターのリソースをすべて消費してしまうのを防ぐこともできる。

提供:Jack Wallen
提供:Jack Wallen

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

「コンテナ」で読まれている記事

TechRepublic Japanで人気の記事

編集部オススメ

トレンドまるわかり![PR]

財務・経理
人事・労務
マーケ・営業
購買・調達
生産・製造
データ分析
コミュニケーション
通信・通話
文書・コンテンツ
PC・モバイル
新興技術
ITインフラ
IAサーバー
UNIXサーバー
コンバージド・ハイパーコンバージド
その他サーバー
ストレージ
スイッチ
無線LAN
ルーター
ロードバランサー
VPN
WAN高速化
その他ネットワーク
サーバー仮想化
コンテナ
SDS/ストレージ仮想化
SDN/ネットワーク仮想化
デスクトップ仮想化
アプリケーション仮想化
その他仮想化
クラウドサービス
OS・ミドルウェア
開発
データベース
運用
セキュリティ

ホワイトペーパーランキング

  1. MITスローン編著、経営層向けガイド「AIと機械学習の重要性」日本語版
  2. AWS提供! 機械学習でビジネスの成功を掴むためのエグゼクティブ向けプレイブック
  3. DX実現の鍵は「深層学習を用いたアプリ開発の高度化」 最適な導入アプローチをIDCが提言
  4. ランサムウェアを阻止するための10のベストプラクティス、エンドポイント保護編
  5. テレワークで急増、リモートデスクトップ経由のサイバー脅威、実態と対策とは

Follow TechRepublic Japan

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]