Service
Service は、Pod にアクセスするための安定したネットワークエンドポイントを提供します。Pod は一時的なもので頻繁に作成/削除される可能性があるため、Service は信頼性の高い通信のために一貫した DNS 名と IP アドレスを提供します。
Service が重要な理由:
Pod は作成と削除を繰り返すため、クライアントは Pod に直接接続することができません。Service は以下を実現します:
- 安定したネットワーキングの提供: Pod が変更されても IP と DNS 名は同じままです。
- 負荷分散の提供: 正常な Pod 間でリクエストを自動的に分散します
- サービスディスカバリの実現: 他のコンポーネントは名前で Service に到達できます
- Pod の抽象化の提供: クライアントは個々の Pod の IP を知る必要がありません
- 自動更新の処理: Pod が作成または削除されるとエンドポイントを調整します
このラボでは、 小売ストアの catalog コンポーネントの Service を作成し、Service が Pod 間の通信をどのように実現するかを探ります。
Service タイプ
Kubernetes は、さまざまなユースケースに対応する異なる Service タイプを提供します:
| タイプ | 目的 | アクセス |
|---|---|---|
| ClusterIP | クラスター内部通信 | クラスターのみ |
| NodePort | ノードポート経由の外部アクセス | 外部 |
| LoadBalancer | クラウドロードバランサー経由の外部アクセス | 外部 |
| ExternalName | 外部 DNS 名へのマッピング | 外部 |
備考
LoadBalancer Service に関する専用のラボは、このワークショップの後半で利用できます。そこでは、クラウドロードバランサーを使用して Service を外部に公開する方法を学習します。