Azure Kubernetes Service 用の Istio ベースのサービス メッシュ アドオン

Istio は、分散アーキテクチャまたはマイクロサービス アーキテクチャで開発者とオペレーターが直面する課題を解決します。 Istio ベースのサービス メッシュ アドオンは、正式にサポートされているテスト済みの Azure Kubernetes Service (AKS) 向け統合を提供します。

サービス メッシュとは

最新のアプリケーションは一般的にマイクロサービスの分散コレクションとして設計され、それぞれのコレクションで個別のビジネス機能が実行されます。 サービス メッシュは、アプリケーションに追加できる専用のインフラストラクチャ レイヤーです。 これを使用すると、監視、トラフィック管理、セキュリティなどの機能を透過的に追加できます。これらの機能を独自のコードに追加する必要はありません。 サービス メッシュという用語は、このパターンの実装に使用するソフトウェアの種類と、そのソフトウェアを使用するときに作成されるセキュリティ ドメインまたはネットワーク ドメインの両方を表します。

Kubernetes ベースのシステムなどで分散サービスのデプロイのサイズと複雑さが増すにつれて、そのデプロイを把握して管理するのが困難になることがあります。 場合によっては、検出、負荷分散、障害復旧、メトリック、監視などの機能を実装する必要があります。 サービス メッシュでは、A/B テスト、カナリア デプロイ、レート制限、アクセスの制御、暗号化、エンド ツー エンド認証といったより複雑な運用要件にも対応できます。

分散アプリケーションを可能にしているのは、サービス間通信です。 サービスの数が増えると、この通信をアプリケーション クラスター内およびアプリケーション クラスター間でルーティングする作業がますます複雑になります。 Istio を使用すれば、この複雑さを軽減しながら、開発チームの負担も和らげることができます。

Istio とは

Istio は、既存の分散アプリケーションに透過的にレイヤー化するオープンソース サービス メッシュです。 Istio の強力な機能により、サービスをセキュリティで保護し、接続、監視するための一貫した効率的な方法が提供されます。 Istio を使用すると、サービス コードをほとんどまたはまったく変更せずに、負荷分散、サービス間認証、監視を行うことができます。 その強力なコントロール プレーンにより、次のような重要な機能を利用できます。

  • TLS 暗号化と強力な ID ベースの認証および承認を使用して、クラスター内のサービス間通信をセキュリティで保護。
  • HTTP、gRPC、WebSocket、および TCP トラフィックの自動負荷分散。
  • 豊富なルーティング規則、再試行、フェールオーバー、およびフォールト インジェクションによる、トラフィックの動作のきめ細かい制御。
  • アクセスの制御、レート制限、クォータをサポートする、プラグ可能なポリシー レイヤーと構成 API。
  • クラスター内のすべてのトラフィック (クラスターのイングレスとエグレスを含む) の自動メトリック、ログ、およびトレース。

アドオンとオープンソース Istio の違い

このサービス メッシュ アドオンはオープンソースの Istio を使用し、これに基づいて作成されています。 アドオンには、次の追加の利点があります。

  • Istio バージョンがテスト済みで、サポートされている Azure Kubernetes Service バージョンとの互換性も検証済みです。
  • Istio コントロール プレーンのスケーリングと構成は Microsoft が処理します。
  • Istio が有効になっている場合、coredns などの AKS コンポーネントのスケーリングは Microsoft が調整します。
  • ユーザーによってトリガーされたときに、Microsoft が Istio コンポーネントのマネージド ライフサイクル (アップグレード) を提供します。
  • 外部と内部のイングレス設定が検証済みです。
  • Prometheus 用 Azure Monitor マネージド サービスAzure Managed Grafana との連携が検証済みです。
  • アドオンに対して正式な Azure サポートが提供されます。

制限事項

AKS 用の Istio ベースのサービス メッシュ アドオンには、次の制限があります。

  • このアドオンは、AKS の Open Service Mesh アドオンを使用する AKS クラスターでは機能しません。
  • このアドオンは、アドオン インストールの外部で Istio が既にインストールされている AKS クラスターでは機能しません。
  • このアドオンは、メッシュの下に追加される仮想ノードと関連付けられたポッドの追加をサポートしていません。
  • Istio では、Windows Server コンテナーがサポートされていません。
  • 次のカスタム リソースに基づくメッシュのカスタマイズは、現時点ではブロックされています。EnvoyFilter, ProxyConfig, WorkloadEntry, WorkloadGroup, Telemetry, IstioOperator, WasmPlugin
  • Istio イングレス ゲートウェイまたはメッシュ トラフィック管理のためのゲートウェイ API (GAMMA) は、現在、Istio アドオンではまだサポートされていません。

次のステップ