【さーびすでぃすかばり】
サービスディスカバリ とは?
最終更新:
💡 動き回るサービスの居場所を自動で見つける「住所録システム」
マイクロサービスやコンテナ環境で、呼び出したいサービスが今どのアドレス・ポートで動いているかを見つける仕組み。インスタンスの増減や移動に合わせて接続先の一覧を更新する。
📌 このページのポイント
サービスディスカバリって何で必要なの?IPアドレスを設定ファイルに書いておけばいいんじゃない?
クライアントサイドとサーバーサイドって何が違うの?
クライアントサイド方式は、呼び出し側がレジストリに「今どこで動いている?」と問い合わせて、自分で接続先を選ぶんだ。サーバーサイド方式は、ロードバランサーなどが間に入って、呼び出し側は決まった宛先に送るだけ。Kubernetesの通常のServiceは、決まったIPに送ると振り分けてくれるからサーバーサイド方式に近いよ。
サービスディスカバリ自体が落ちたらどうなるの?
ヘルスチェックも関係あるの?
もっと詳しく知りたい人へ
KubernetesではPodのIPアドレスが変わっても、なぜ同じ名前でつながるの?
Serviceという仕組みが間に入るからだよ。Serviceにはラベルで対象のPodを選ぶ条件があり、コントローラーが条件に合うPodを見張って接続先の一覧(EndpointSlice)を更新する。呼び出し側は、Podが入れ替わっても変わらないServiceのクラスターIPや、my-service.default.svc.cluster.local のようなDNS名を使えばいいんだ。
まとめ:ざっくりこれだけ覚えればOK!
「サービスディスカバリ」って出てきたら「サービスの今の居場所を見つけて、接続先の一覧を最新に保つ仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Service Discovery」 = サービスの発見
💬 Service(サービス)+ Discovery(発見・探索)。「このサービスはどこにいる?」を解決する仕組みだよ