IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウドネイティブで行こう

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第6回 サービスメッシュとは (宮崎悟) 2023年1月

前回は、マイクロサービスの概要について説明しました。今回は、マイクロサービスでよく使用される、サービスメッシュについて説明します。

サービスメッシュとは

サービスメッシュは、インフラストラクチャ層において、通信トラフィックの制御や可観測性を向上させる機能の1つです。

マイクロサービスでは、アプリケーションの集まりをサービスとして扱い、複数のサービス間をAPIで接続して1つの全体のサービスとして提供します。マイクロサービスをKubernetesで実装する場合、アプリケーションがPod、Podの管理するワークロード、ワークロードのネットワークを管理するサービスと、それぞれ呼称します。この管理は、Kubernetesのコントロールプレーンで制御します。

下記は、Kubernetes でのAPI処理フローになります。Ingress サービスは、Kubernetes外部からの通信を受け取るサービスです。各サービスへのAPIは、自動的にワークロード配下のPodへランダムに割り振ります。

kubernetes

サービスメッシュでは、各PodにProxyの役割をするコンテナ(下記図のP)を埋め込みます。サービスメッシュコントローラは、このProxyを経由してPod間の通信制御を行います。結果として、Pod間通信のトラフィックが監視可能になります。

servicemesh

Istioとは

Kubernetesでサービスメッシュを実現するために使用されるソフトウェアの、代表的なものが Istio です。

Istioは、アプリケーション ネットワーク機能を柔軟かつ簡単に自動化する、サービス ネットワーキング を構築します。Kubernetesと従来のワークロードの両方で動作するIstioは、以下のコンポーネントで構成されます。

  • Envoy すべてのネットワークトラフィクを管理するプロキシサーバです。KubernetesのPod内に含む形でデプロイされます。
  • Pilot サービスディスカバリとトラフィック管理します。
  • Mixer Envoyを通じて、各サービスのデータを収集し、その情報を元にしてアクセスコントロールを行います。
  • Istio-Auth Kubernetes のService Accountを使用したユーザ認証と、サービス間のTLS相互認証を提供します。

Pilot、Mixer、Istio-Auth は、Istioのコントロールプレーンと呼ばれます。 Envoyは、以下の機能を持ちます。

  • L3/L4/L7 フィルタアーキテクチャ Envoyは、L3/L4ネットワークプロキシの役割を持ちます。また、L7 のプロキシとして、HTTP L7フィルタをサポートしています。
  • HTTP/2、HTTP/3対応 Envoyは、HTTP/1.1、HTTP/2に対応し、最新のバージョンではHTTP/3に対応しています。
  • HTTP L7 ルーティング Envoyは、フロント/エッジプロキシとして使用可能で、パス、権限、コンテンツタイプ、ランタイム値などに基づいてリクエストをルーティングします。この機能はサービス間のメッシュを構築する際にも活用されます。
  • gRPC サポート Envoyは、HTTP/2の機能をすべてサポートし、gRPCのリクエストとレスポンスのルーティングとロードバランシングの基盤として使用できます。
  • サービスディスカバリ、動的設定、ヘルスチェック Envoyは、集中管理のための動的設定APIのレイヤーセットを使用でき、ホスト、バックエンドクラスタ自体、HTTPルーティング、リスニングソケット、暗号に関する動的な更新をEnvoyに提供します。また、アクティブなヘルスチェックを実行できるヘルスチェックサブシステムを含みます。
  • 高度なロードバランス Envoy はライブラリではなく自己完結型のプロキシなので、高度なロードバランシング技術を一箇所に実装し、どのアプリケーションからもアクセス可能です。
  • フロント/エッジプロキシ対応 エッジで同じソフトウェアを使うことには大きなメリット(観測性、管理性、同一のサービスディスカバリ、ロードバランシングアルゴリズムなど)があります。Envoyは、最新のWebアプリケーションに対応したエッジプロキシとして動作します。
  • オブザーバビリティ Envoy の第一の目標はネットワークを透過的にすることです。しかし、問題はネットワークレベルとアプリケーションレベルの両方で発生します。Envoy は、すべてのサブシステムに対して強固な統計サポートを提供しています。
終わりに

今回は、サービスメッシュとサービスメッシュの実装としてIsioについて説明しました。サービスメッシュを実装するアプリケーションは他にもありますが、Istio を使用することが多くなっています。 次回は、イミュータブルインフラストラクチャに付いて説明します。次回をお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes