サイドカーパターン

メインコンテナと同じ Pod に補助コンテナを配置し、横断的関心事を分離する設計パターン

Kubernetes設計パターン

サイドカーパターンとは

サイドカーパターンは、メインのアプリケーションコンテナと同じ Pod に補助コンテナを配置し、ログ収集、監視、プロキシなどの横断的関心事をメインから分離する設計パターンである。

サイドカーのユースケース

サイドカーはメインコンテナの機能を拡張する補助コンテナで、ログ収集、プロキシ、監視、シークレット管理などの横断的関心事を担当する。メインコンテナのコードを変更せずに機能を追加できる点が利点。

サイドカー役割
ログ収集ログを集約・転送Fluent Bit
プロキシトラフィック制御、mTLSEnvoy (Istio)
監視メトリクス収集ADOT Collector
シークレット秘密情報の注入Vault Agent

Kubernetes での定義

Kubernetes での定義の例を示す。

apiVersion: v1
kind: Pod
spec:
  containers:
    - name: app
      image: my-app:latest
      ports: [{ containerPort: 8080 }]
    - name: log-collector
      image: fluent/fluent-bit:latest
      volumeMounts:
        - name: logs
          mountPath: /var/log/app
  volumes:
    - name: logs
      emptyDir: {}

サイドカー vs Lambda Layer

サイドカーと Lambda Layer の違いを以下にまとめる。

観点サイドカー (ECS/EKS)Lambda Layer
実行環境別コンテナ同一プロセス
通信localhost関数内呼び出し
用途プロキシ、ログ収集共通ライブラリ、ADOT
リソース独立した CPU/メモリLambda のメモリを共有

サイドカーの注意点

サイドカーの注意点を以下にまとめる。

注意点対策
リソース消費サイドカーの CPU/メモリを制限
起動順序Init Container で依存を解決
複雑さ必要なサイドカーだけ追加

現場での応用を知るには関連書籍も役立つ。

この記事は役に立ちましたか?

関連用語

関連する記事