Open Service Mesh AKS アドオン
Open Service Mesh (OSM) は、軽量で拡張可能なクラウド ネイティブ サービス メッシュであり、ユーザーは、高度に動的なマイクロサービス環境のために、すぐに使用できる監視機能を統一して管理し、セキュリティで保護することができます。
OSM は Kubernetes 上で Envoy ベースのコントロール プレーンを実行し、SMI API を使用して構成できます。 OSM は、アプリケーションの各インスタンスを含むサイドカー コンテナーとしてエンボイ プロキシを挿入して機能します。 エンボイ プロキシでは、アクセス制御ポリシーに関する実行規則が含まれており、これらの規則を実行します。また、ルーティング構成を実装し、メトリックをキャプチャします。 コントロール プレーンでは、ポリシーとルーティング規則が最新であることを確認し、プロキシが正常であることを保証するために、エンボイ プロキシを継続的に構成します。
OSM プロジェクトは Microsoft によって開始され、それ以降は Cloud Native Computing Foundation (CNCF) によって寄贈および管理されてきました。
インストールとバージョン
OSM は、Azure CLI または Bicep テンプレートを使用して OSM アドオンを有効にすることで、Azure Kubernetes Service (AKS) クラスターに追加できます。 OSM アドオンにより、AKS と統合された OSM の完全にサポートされたインストールが可能になります。
重要
OSM アドオンを使用すると、クラスターにバージョン 1.0.0 の OSM がインストールされます。
機能と特徴
OSM には、次の機能があります。
- 相互 TLS (mTLS) を有効にして、サービス間の通信をセキュリティで保護する。
- エンボイ プロキシの自動サイドカー挿入を使用して、アプリケーションを OSM メッシュにオンボードする。
- デプロイ時にトラフィック移行を透過的に構成する。
- サービスに対してきめ細かなアクセス制御ポリシーを定義して実行する。
- アプリケーション メトリックに関する監視と分析情報を使用して、サービスを監視およびデバッグする。
- 外部証明書管理と統合する。
- NGINX、Contour、Web アプリケーション ルーティングなどの既存のイングレス ソリューションと統合する。 イングレスと OSM が連携する方法の詳細については、「クラスター内のサービスへの外部アクセスを管理するためのイングレスの使用」を参照してください。 イングレス用に OSM と Contour を統合する例については、「Contour を使用したイングレス」を参照してください。 OSM と
networking.k8s.io/v1
API を使用するイングレス コントローラー (NGINX など) の統合の例については、「Kubernetes Nginx イングレス コントローラーを使用したイングレス」を参照してください。 OSM と自動的に統合される Web アプリケーション ルーティングの使用について詳しくは、「Web アプリケーション ルーティング」をご覧ください。
シナリオ例
OSM は、さまざまな方法で AKS デプロイを支援するために使用できます。 次に例を示します。
- クラスターにデプロイされたサービス エンドポイント間の通信を暗号化します。
- HTTP/HTTPS と TCP トラフィックの両方に対するトラフィックの認可を有効にします。
- A/B テストまたはカナリア デプロイ用の複数のサービス間の重み付けトラフィック制御を構成します。
- アプリケーション トラフィックから KPI を収集して表示します。
アドオンの制限事項
OSM AKS アドオンには次の制限があります。
- インストール後に
kubectl patch
を使用して、ポート IP アドレスとポート範囲の除外に対する Iptables リダイレクトを有効にする必要があります。 詳細については、 「iptables リダイレクト」を参照してください。 - IMDS、Azure DNS、または Kubernetes API サーバーにアクセスする必要があるメッシュにオンボードされているポッドでは、「グローバル送信 IP 範囲の除外」を使用して、除外される送信 IP 範囲のグローバル一覧に、ポッドの IP アドレスを指定する必要があります。
次のステップ
Azure CLI または Bicep テンプレートを使用して OSM アドオンを有効にした後、次の方法を実行できます。