マルチコンテナ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
検証ポイント
- メインコンテナリソース: トップレベルの
resourcesセクションはメインアプリケーションコンテナに適用 - サイドカーリソース: 各サイドカーには独自の
resourcesセクションが必要。サイドカーのリソース欠落はノードのオーバーコミットを引き起こす可能性 - イメージ設定: 各コンテナのイメージは同じ規約に従うべき
- 合計リソースバジェット: すべてのコンテナリソースの合計が単一Podに対して妥当であるべき
ベストプラクティス
- 無制限のリソース使用を防ぐため、サイドカーコンテナには必ずリソースを定義
- ワンタイムセットアップタスク(データベースマイグレーション、設定取得)には
initContainersを使用 - サイドカーのリソースリクエストは控えめに。Podのリソースバジェットを共有します
ユースケース
Envoyサイドカープロキシとデータベースマイグレーションinitコンテナを持つマイクロサービスのデプロイ。合計Podリソースがノード容量とネームスペースリソースクォータ内に収まる必要がある。