Kubernetesリソース制限とリクエストを検証する
Helm values.yamlのresources.limitsとresources.requestsをチェック。リクエストの欠落、制限の欠落、不整合なリソース設定を検出します。
Resource Management
詳細な説明
リソース制限とリクエスト
適切に設定されたリソースリクエストと制限は、Kubernetesのポッドスケジューリング、安定性、コスト管理に不可欠です。Helm Valuesバリデーターはこの重要なセクションの一般的な設定ミスをチェックします。
推奨パターン
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
検証される項目
- 両セクションの存在:
limitsのみでrequestsがない場合、リクエストはリミットと同じ値になり(無駄)、requestsのみでlimitsがない場合は上限なし(リスク)。 - セクション構造:
limitsとrequestsはマッピング(オブジェクト)であるべき。 - リソースの欠落:
resourcesセクションが全くない場合、追加を提案する情報メッセージ。
リソース単位リファレンス
| リソース | 単位 | 例 |
|---|---|---|
| CPU | ミリコア | 100m、250m、1000m(= 1コア) |
| メモリ | バイト | 128Mi、512Mi、1Gi、2Gi |
よくあるアンチパターン
リソース未定義(本番環境では危険):
# resources: {} -- または完全に欠落
Podが無制限のリソースを消費し、ノードの不安定やエビクションを引き起こす可能性があります。
リクエストなしのリミット:
resources:
limits:
cpu: 500m
memory: 512Mi
# requests欠落 - リミット値がデフォルト
スケジューラーがリミットの全量を予約するため、クラスター容量が無駄になります。
ユースケース
クラスターオートスケーリングの有効化やリソースクォータの実装前に、複数のHelmリリースのリソース設定を監査し、すべてのデプロイメントに適切な制限が設定されていることを確認。