Kubernetesサービスの概要と実装方法
Service(サービス)とは何ですか? Service(サービス)は、Kubernetesで最も重要なリソースオブジェクトの1つであり、サービスはアクセスポイントのアドレスを定義し、フロントエンドのアプリケーション(Pod)はこのアクセスポイントを使用してその背後にある一連のPodレプリカで構成されるクラスターインスタンスにアクセスします。 ServiceとそのバックエンドのPodレプリカの間の関係は、ラベルセレクターを使用して “シームレスな接続”を実現します。そして、RCの役割は実際には、Serviceのサービス能力とサービス品質が予想される基準にあることを保証することです。 Kubernetesが提供するマイクロサービスネットワークアーキテクチャ すべてのサービスを分析、識別し、システム内のすべてのサービスをマイクロサービスとしてモデル化することにより—Kubernetesサービス、最終的には、私たちのシステムは異なるビジネス機能を提供し、お互いに独立している複数のマイクロサービスユニットで構成されます。サービス間の通信はTCP/IPを介して行われ、強力な分散能力、弾力性のある拡張能力、耐障害性を備えています。 各Podには個別のIPアドレスが割り当てられ、各Podはクライアントがアクセスするための独自のエンドポイント(Pod IP+コンテナポート)を提供します。現在、複数のPodレプリカがアクセスを提供するためにクラスターを形成しました。 Kubernetesは、各Nodeにkube-proxyをインストールする必要があります。kube-proxyプロセスは実際にはスマートなソフトウェアロードバランサーであり、Serviceへのリクエストをバックエンドの特定のPodインスタンスに転送し、サービスの負荷分散とセッション維持メカニズムを内部で実装します。 Kubernetesは、非常に巧妙なデザインを考案しました。Serviceは負荷分散器のIPアドレスを共有するのではなく、各Serviceにはグローバルでユニークな仮想IPアドレスが割り当てられます。この仮想IPはCluster IPと呼ばれます。これにより、各サービスは”通信ノード”として一意のIPアドレスを持つことになり、サービス呼び出しは最も基本的なTCPネットワーク通信の問題に変わります。 Podのエンドポイントアドレスは、Podが破棄され、再作成されるたびに変更されます。新しいPodアドレスは以前の古いPodとは異なります。一方、Serviceが作成されると、Kubernetesは自動的に使用可能なCluster IPを割り当て、Serviceのライフサイクル全体でそのCluster IPが変更されないようにします。したがって、Serviceの名前とServiceのCluster IPアドレスをDNSドメインマッピングとして使用するだけで問題が解決します。…
Read More