Kubernetesリソース制限とリクエストを検証する

Helm values.yamlのresources.limitsとresources.requestsをチェック。リクエストの欠落、制限の欠落、不整合なリソース設定を検出します。

Resource Management

詳細な説明

リソース制限とリクエスト

適切に設定されたリソースリクエストと制限は、Kubernetesのポッドスケジューリング、安定性、コスト管理に不可欠です。Helm Valuesバリデーターはこの重要なセクションの一般的な設定ミスをチェックします。

推奨パターン

resources:
  limits:
    cpu: 500m
    memory: 512Mi
  requests:
    cpu: 250m
    memory: 256Mi

検証される項目

  1. 両セクションの存在: limitsのみでrequestsがない場合、リクエストはリミットと同じ値になり(無駄)、requestsのみでlimitsがない場合は上限なし(リスク)。
  2. セクション構造: limitsrequestsはマッピング(オブジェクト)であるべき。
  3. リソースの欠落: resourcesセクションが全くない場合、追加を提案する情報メッセージ。

リソース単位リファレンス

リソース 単位
CPU ミリコア 100m250m1000m(= 1コア)
メモリ バイト 128Mi512Mi1Gi2Gi

よくあるアンチパターン

リソース未定義(本番環境では危険):

# resources: {}  -- または完全に欠落

Podが無制限のリソースを消費し、ノードの不安定やエビクションを引き起こす可能性があります。

リクエストなしのリミット:

resources:
  limits:
    cpu: 500m
    memory: 512Mi
  # requests欠落 - リミット値がデフォルト

スケジューラーがリミットの全量を予約するため、クラスター容量が無駄になります。

ユースケース

クラスターオートスケーリングの有効化やリソースクォータの実装前に、複数のHelmリリースのリソース設定を監査し、すべてのデプロイメントに適切な制限が設定されていることを確認。

試してみる — Helm Values Validator

フルツールを開く