7章サービスディスカバリ

Kubernetesは非常にダイナミックなシステムです。Kubernetesのシステムは、ノードへのPodの配置を制御し、Podが間違いなく起動して動き続けているようにし、必要に応じて別のノードに割り当て直します。負荷に応じてPodの数を自動的に変更する機能(Podの水平スケール(8章「8.7.3 ReplicaSetのオートスケール」を参照))もあります。KubernetesのAPIドリブンな性質が、他のシステムにもより高いレベルでの自動化を促します。

Kubernetesは、そのダイナミックな性質によってたくさんのサービスを同時に実行可能ですが、動いているサービスを見つけるのは難しくなります。伝統的なネットワークインフラのほとんどは、Kubernetesが提供するようなダイナミックなレベルに対応できるようには作られていません。

7.1 サービスディスカバリとは

上で述べたような、何かを見つけるという問題とその解決策を一般に、サービスディスカバリと呼びます。サービスディスカバリツールは、どのプロセスがどのアドレスでどのサービスのために待ち受けているのかを見つける際に起きる問題を解決します。よいサービスディスカバリのサービスを使うと、ユーザはこの手の情報をすばやく確実に見つけられるようになります。よいシステムには、関連づけられたサービスに変更があると情報がすぐに更新される、つまりレイテンシが低いという特徴もあります。また、見つけるサービスが何なのかといった詳しい定義情報を保存できるのも、よいサービスディスカバリシステムの条件の1つです。例えば、あるサービスにポートが複数関連づけられているかどうかといった情報です。

DNSは、インターネット上の伝統的なサービスディスカバリのシステムです。幅広く効率的にキャッシュしつつ、比較的安定した名前解決を行うようデザインされています。DNSはインターネットでは素晴らしいサービスディスカバリシステムですが、Kubernetesのダイナミックな世界には不十分です。 ...

Get 入門 Kubernetes now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.