次の方法で共有


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 クラスターでは機能しません。

  • このアドオンは、メッシュの下に追加される仮想ノードと関連付けられたポッドの追加をサポートしていません。

  • このアドオンは、送信トラフィック制御用のエグレス ゲートウェイをまだサポートしていません。

  • このアドオンは、サイドカーを使用しないアンビエント モードをまだサポートしていません。 現在、Microsoft は、Istio オープン ソースのアンビエント ワークストリームに貢献しています。 アンビエント モードの製品統合はロードマップにあり、アンビエント ワークストリームの進化に合わせて継続的に評価されています。

  • このアドオンは、マルチクラスター デプロイをまだサポートしていません。

  • このアドオンでは、Windows Server コンテナーがまだサポートされていません。 Windows Server コンテナーは、現在、オープン ソースの Istio ではまだサポートされていません。 この機能の質問に関する問題点の追跡は、こちらを参照してください。

  • 現在、カスタム リソース ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin を用いたメッシュのカスタマイズはブロックされます。

  • このアドオンを使うと、次の EnvoyFilter フィルターの種類の使用は許可され、他のフィルターの種類はブロックされます。

    • Lua (type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua)
    • コンプレッサー (type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor)
    • ローカル レート制限 (type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit)

    Note

    これらの EnvoyFilter は許可されていますが、(Lua スクリプトや圧縮ライブラリなど) から発生する問題は、Istio アドオンのサポート範囲外です。 Istio アドオンの機能と構成オプションのサポート カテゴリの詳細については、サポート ポリシー ドキュメントを参照してください。

  • Istio イングレス ゲートウェイまたはメッシュ トラフィック管理のための Gateway API (GAMMA) は、現在、Istio アドオンではまだサポートされていません。 ただし、Istio イングレス トラフィック管理のための Gateway API は現在、そのアドオンに対応するよう開発が進められています。 アドオンでは、IP アドレスとサービス タグに関する Istio イングレス ゲートウェイの注釈のカスタマイズがサポートされていますが、ポートまたはプロトコルの構成は現在はサポートされていません。

フィードバックと機能の質問

Istio アドオンに関するフィードバックと機能の質問を提出するには、AKS GitHub リポジトリで "service-mesh" というラベルを付けて問題を作成します。

次のステップ