マルチコンテナPodの値を検証する

サイドカー、initコンテナ、複数コンテナを持つPodのvalues.yamlパターンをチェック。各コンテナのリソース設定を検証します。

Advanced Patterns

詳細な説明

マルチコンテナPod設定

複数のコンテナ(サイドカー、initコンテナ)を持つPodをデプロイするHelmチャートは、より複雑なvalues構造を持ちます。各コンテナには通常、独自のイメージとリソース設定が必要です。

一般的なパターン

image:
  repository: my-app
  tag: "1.0.0"
  pullPolicy: IfNotPresent

sidecar:
  enabled: true
  image:
    repository: envoyproxy/envoy
    tag: "v1.28.0"
  resources:
    limits:
      cpu: 200m
      memory: 256Mi
    requests:
      cpu: 100m
      memory: 128Mi

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

検証ポイント

  1. メインコンテナリソース: トップレベルのresourcesセクションはメインアプリケーションコンテナに適用
  2. サイドカーリソース: 各サイドカーには独自のresourcesセクションが必要。サイドカーのリソース欠落はノードのオーバーコミットを引き起こす可能性
  3. イメージ設定: 各コンテナのイメージは同じ規約に従うべき
  4. 合計リソースバジェット: すべてのコンテナリソースの合計が単一Podに対して妥当であるべき

ベストプラクティス

  • 無制限のリソース使用を防ぐため、サイドカーコンテナには必ずリソースを定義
  • ワンタイムセットアップタスク(データベースマイグレーション、設定取得)にはinitContainersを使用
  • サイドカーのリソースリクエストは控えめに。Podのリソースバジェットを共有します

ユースケース

Envoyサイドカープロキシとデータベースマイグレーションinitコンテナを持つマイクロサービスのデプロイ。合計Podリソースがノード容量とネームスペースリソースクォータ内に収まる必要がある。

試してみる — Helm Values Validator

フルツールを開く