開発・運用

Kubernetes Resource Calculatorリソース量の意味を正確に確認

CPUとメモリーを換算し、通常のアプリコンテナで明示したリソースを合計します。

Kubernetes Resource Calculator

QuantityまたはコンテナJSON

入力はこのブラウザー内で処理され、サーバーには送信されません。

結果

Quantityを入力するか例を読み込んでください。

オプション

Quantityの数値動作:k8s.io/apimachinery v0.34.1(Kubernetes 1.34)。出力は10進値で、Go String() のシリアライズやクラスタ検証ではありません。

CPUは非負かつ整数ミリコアが必要です(1m = 0.001 CPU)。より細かい値はGeneric Quantityを使用します。

上限:Quantityは256文字、指数は−100~100、入力は100,000 UTF-16単位、コンテナ100件、名前80文字。数字が一つ以上必要です。

入力または設定が変更されました。出力前に再計算してください。

設定を見直すとき、同じ100mでもCPUとメモリーでは意味が変わります。Kubernetes Resource Calculatorで単位の取り違えを確認し、コンテナごとの未指定項目も見落とさずに合計を読めます。

CPU単位のコアとミリコア、メモリーの正確なバイト数・Mi・Giを比較できます。表示する合計は入力値の計算であり、実際の使用量や割り当ての推奨値ではありません。

Kubernetes Resource Calculatorを使う理由

接尾辞の取り違えに気づく

CPUモードでは100mと0.1コアが同じ量を表します。Kubernetes Resource Calculatorはメモリーの100mを0.1バイトとして表示します。10進・2進単位を比べ、設定を再利用する前にm、M、Miの違いを確認できます。

CPUの10分の1と十個の小さなCPUブロックの一つが同じ割合を示す図。

未指定の値を見落とさない

各コンテナのrequestsとlimitsを合計とともに表示します。欠けた項目は未指定のまま扱い、ゼロや架空の上限で置き換えません。

三つのコンテナの青ブロック2・3・1を合計して6とし、未指定の緑の値は点線で残す図。

再利用前の三つの確認

01

リソースの種類を選ぶ

CPU、Memory、Generic Quantityを選択します。CPUは整数ミリコアが必要です。Genericではより細かい値や負数も解析でき、コンテナモードは名前付きJSON配列を受け取ります。

02

未指定項目と合計を合わせて読む

各リソースと未指定項目数を確認してください。limitが一つでも欠けると、記入済みlimitの合計は有限の総上限を意味しません。requestの自動補完は行いません。

03

更新して置換内容を確認する

自動計算は350 ms待機します。オフでは計算ボタンかCtrl/Cmd+Enterを使用します。例・クリア・正規化の書き戻しはプレビュー後に適用し、元に戻せます。古い結果は出力できません。

四つの表示モード

CPU単位の換算

コアと整数ミリコアを併記します。100mは0.1 CPUです。負のリソース量や小数ミリコアは受け付けません。

メモリー単位の換算

正確なバイト数、Mi、Giを比較します。小数バイトを保持し、切り上げた整数バイトも別に表示します。

Generic Quantityの解析

apimachinery v0.34.1の数値動作に基づく10進値を表示し、ナノ精度の丸めとBinarySIの飽和を示します。

アプリコンテナの合計

JSONのname、requests、limitsからCPUとメモリーを合計します。メモリーlimitsの未指定項目やrequest未満のlimitも、クラスタに接続せず確認できます。

入力形式と制限

接尾辞を厳密に解析
大文字と小文字を区別します。n、u、m、k、M、G、T、P、E、KiからEi、および整数指数のe/Eを使用できます。空白、MiB、GB、数字のない値は拒否します。
精度と数値範囲
基準はk8s.io/apimachinery v0.34.1です。1nより細かい値はゼロから遠ざかる向きに丸め、BinarySIは±(2^63−1)で飽和します。10進値は64ビットを超えても正確です。出力は10進表現であり、Go String()の正準シリアライズではありません。
CPUとメモリーの制約
CPUとメモリーは非負の値に限ります。解析後のCPUは1mの整数倍が必要です。メモリー100mは0.1バイトで、別表示の整数バイトは切り上げて1になります。実際の割り当て単位はさらに大きい場合があります。
JSON入力の上限
Quantityは256文字、指数は−100~100、入力全体は100,000 UTF-16単位までです。コンテナは一意の名前で最大100件、名前は制御文字を除く1~80文字。name、requests、limitsと内部cpu/memory文字列以外の項目はエラーです。JSONキーの重複は拒否します。 配列の各要素は一つの通常コンテナです。requestsまたはlimitsのオブジェクトを省略することも、その中でcpuだけを指定することもできます。数量をJSONの数値として書くと、値が整数であっても拒否されます。単位なしの場合も文字列の引用符を付けてください。
明示されたアプリリソースのみ
YAML、完全なマニフェスト、initコンテナ、sidecar、overhead、Podレベルのリソースは扱いません。欠けた値に既定値を適用せず、スケジューリング・実使用量・最適クォータも判断しません。

Kubernetes Resource Calculatorの質問

100mのCPUは何を意味しますか?

100mは100ミリコア、つまり0.1 CPUです。このツールでは1000mと1は同じ1 CPUを表します。0.5mはCPU精度の検証で拒否されます。

MiとMの違いは何ですか?

Miは1,048,576バイト、Mは1,000,000バイトです。小文字mは1バイトの1000分の1です。メモリーモードで正確な値を比較できます。

limitsだけを指定するとどうなりますか?

アドミッション機構がrequestを設定していなければ、Kubernetesは指定されたlimitをrequestにコピーすることがあります。本ツールは未指定の状態を保ち、その条件を説明します。

Podがスケジュールされないのはなぜですか?

ノードの割り当て可能量を超えるrequestや、アフィニティー・taintなどが原因となり得ます。ローカルの合計だけでは診断できないため、Podイベントとノードのリソースを確認してください。

CPUとメモリーのrequestsとlimitsはどう決めますか?

代表的な負荷の測定値とアプリの要件から決めてください。このツールは数量と宣言値の合計を確認するもので、算術だけで安全・最適なrequestsとlimitsを選べるわけではありません。

想定と異なる値ですか?

入力値をもう一度確認する

Quantityまたはコンテナ配列をKubernetes Resource Calculatorに貼り付け、最新の結果を確認してJSONを出力しましょう。