Member-only story
Kubernetesマルチコンテナポッドパターン
Kubernetes PodはKubernetesの基本的な構成要素です。1つ以上のコンテナで構成されており、Kubernetesアーキテクチャを分割できる最小のエンティティです。
Kubernetes を使い始めたばかりの頃は、なぜこれはこのように設計されているのだろうかとよく考えました。つまり、なぜコンテナが基本的な*ビルドブロックにならなかったのか、ということです。まあ、実際の環境でいろいろやってみると、今では確かに理にかなっていると思います。
ポッドは複数のコンテナを含むことができますが、これにはいくつかの優れた理由があります。 主に、ポッド内のコンテナがマルチノードクラスタ内の同じノードでスケジュールされるという事実がその理由です。これにより、それらの間の通信がより速く、より安全になり、ボリュームのマウントやファイルシステムをお互いで共有することができます。
これは、特定の問題を解決するために実装できるパターンを構築するのに役立ちます。広く認知されているマルチコンテナポッドのパターンは3つあります。
- Sidecar
- Ambassador
- Adapter
実践例を交えながら、それぞれを見ていきましょう。
前提条件
今回のこの記事をご理解いただくためには、Kubernetes クラスタが稼働している必要がありますが、このレポをクローンして cd してください。
Sidecar
Sidecarsという名前は、オートバイのサイドカーに由来しています。あなたのバイクはサイドカーがなくても問題なく動作しますが、サイドカーを持ち、余分なシートを与えることで、バイクの機能を強化または拡張することができます。同様に、Kubernetesでは、Sidecarパターンはコンテナの既存の機能を強化したり拡張したりするために使用されます。
コンテナはsidecarがなくても完璧に動作しますが、sidecarがあれば機能を追加できます。素晴らしい例としては、sidecarをモニタリングやロギングに使用したり、これらの目的のためにエージェントを追加したりすることが挙げられます。