前回の記事では、分散ランタイム Dapr の使い方を紹介しました。この例では、状態ストレージ機能が Dapr ランタイムに分離され、アプリケーションは Dapr API を通じてこの機能を使用しました。この記事では、Ingress Controller を介して Dapr アプリケーションにアクセスする方法を紹介します。 プランDapr アプリケーションをパブリックにアクセス可能にする方法は 2 つあります。
2 つのソリューションにはそれぞれ長所と短所があります。前者はシンプルなアーキテクチャを持っています。後者は Daprd コンテナを導入しますが、アーキテクチャが複雑で、より多くのリソースを消費しますが、タイムアウト、再試行、アクセス制御などの Dapr のサービス ガバナンス機能も使用できます。 次に、例を使用して 2 つのソリューションをそれぞれ検証します。 デモ前提条件
エクスポート INSTALL_K3S_VERSION=v1.23.8+k3s2 Daprをインストールするdapr を初期化します --kubernetes --wait イングレス コントローラのインストールここではFlomeshの入口コントローラが使用されています。 valus.yaml を通じて、Ingress コントローラーに dapr 関連のアノテーションを追加します。ここで注目すべき点は、デフォルトでは、Daprd ランタイムがリッスンするポートはループバック アドレスにバインドされており、Ingress はバックエンドにリクエストを転送するときに Pod IP を使用することです。したがって、Daprd ランタイムが Pod IP からのリクエストを受信できるように、dapr.io/sidecar-listen-addresses: "[::],0.0.0.0" にアノテーションを付ける必要があります。 #値.yaml helmリポジトリにfsmを追加しますhttps://charts.flomesh.io サンプルアプリケーションをデプロイするサンプル アプリケーションでは、kennethreitz/httpbin を使用し、それに dapr 関連のアノテーションを追加します。 kubectl で ns-httpbinを作成します 解決策1Flomesh Ingressのドキュメント[1]を参照して、バックエンドとしてService httpbinを使用してIngressルールを作成します。 kubectl apply -n httpbin -f - << EOF /httpbin/get にアクセスするには、Ingress コントローラーのホスト IP アドレスとポート 80 を使用します。上記で設定されたパスの書き換えにより、最終リクエスト /get がターゲット Pod に送信されます。 curl HOST_IP : 80 / httpbin / get 解決策2ソリューション 2 でもイングレス ルールの構成が必要ですが、今回はバックエンド サービスがイングレス コントローラーの Dapr サービスを構成します。 kubectl get svc -n flomesh を使用すると、-dapr サフィックスを持つサービスを見つけることができます。 kubectl 適用- n flomesh - f - << EOF httpbinへのアクセスパスは依然として/getですが、アクセス方法はDaprサービスのAPI呼び出しに従う必要があります[2]:リクエストヘッダーでdapr-app-idをhttpbin.httpbinとして指定します。イングレス コントローラーとターゲット アプリケーションは同じ名前空間にないため、アプリケーション ID にはその名前空間を含める必要があります。 結果も正常に返されますが、最終的なアプリケーションがリクエスト ヘッダーでより多くの情報を受け取っていることがわかります。この情報は Daprd ランタイムから取得されます。たとえば、Dapr-Caller-App-Id や "Dapr-Callee-App-Id は、要求の開始者と受信者を示します。Forwarded は、要求を開始したホスト名を識別します。トレースが有効になっている場合は、リンクに関連する情報も表示されます (この例では有効になっていません)。 curl HOST_IP : 80 / dapr / get - H 'dapr-app-id:httpbin.httpbin' アクセス制御記事の冒頭で、ソリューション 2 は遅延を招き、複雑さが増すものの、Dapr のサービス ガバナンス機能を使用できることが述べられています。ここではDaprのアクセス制御機能[3]を例に挙げます。 Ingress コントローラーとサンプル アプリケーションをデプロイするときに、dapr.io/config: xxx というアノテーションがあることに気づいたかどうかわかりません。このアノテーションは、アプリケーションの Daprd ランタイムの構成を指定します。ランタイムが起動すると、xxx という名前の構成リソースから構成が読み取られます。 次のコマンドを実行して、httpbin アプリケーションのアクセス制御ルールを設定します。デフォルトですべてのリクエストを拒否し、flomesh 名前空間の ID が ingress のアプリケーションのみが GET を介してパス /get にアクセスできるようにします。詳細なアクセス制御設定については、Daprアクセス制御の公式ドキュメント[4]を参照してください。 kubectl apply -n httpbin -f - << EOF 設定を適用した後、アプリケーションを再起動する必要があります。 kubectl ロールアウト 再起動 デプロイ httpbin - n httpbin 再起動が完了するまで待ってから /get パスにアクセスすると、正常に応答します。 curl HOST_IP : 80 / dapr / get - H 'dapr-app-id:httpbin.httpbin' ただし、パス /headers にアクセスすると、次の応答が返されます: /headers へのアクセスは禁止されています。 curl HOST_IP:80/dapr/headers -H 'dapr-app-id:httpbin.httpbin' 要約するこの記事で使用されている 2 つのエントリ ソリューションには、それぞれ長所と短所があります。ソリューション 1 はシンプルなアーキテクチャを備えており、当社でもよく使用されるソリューションです。ソリューション 2 は、エントリ コントローラーを Dapr アプリケーションとして宣言することと同じです。実際、Dapr API を公開しており、実装においてはグローバル アプリケーション ランタイムに似ています。 参考文献[1] ドキュメント: https://fsm-docs.flomesh.io/docs/demos/ingress_basics [2] Daprサービス呼び出しAPI: https://docs.dapr.io/developing-applications/building-blocks/service-invocation/howto-invoke-discover-services/ [3] Daprのアクセス制御機能: https://docs.dapr.io/operations/configuration/invoke-allowlist/ [4] Daprアクセス制御公式ドキュメント: https://docs.dapr.io/operations/configuration/invoke-allowlist/ |
<<: GKE セキュリティ: クラスターを保護するための 10 の戦略
>>: ハイブリッドクラウドアーキテクチャモデルを1つの記事で解説
最速の米国 VPS、高速の米国 VPS、高速の米国 VPS、最速の米国 VPS... 米国 VPS ...
今日では、ほとんどすべての企業が、自社のブランドや製品を宣伝するためにインターネットを利用する方法を...
はじめに:BATの大規模な侵攻は業界で大きな注目を集めています。3つの巨人による集中的な文化的囲い込...
多くの SEO 担当者は、「コンテンツは王様、外部リンクは女王様」が SEO 業界のスローガンである...
Baidu は最近、低品質コンテンツに対する最初の取り締まりからリンク不正に対する 2 回目の取り締...
キーワード調査は SEO プロセスの非常に重要な部分です。この部分がどれだけうまく行われるかは、ウェ...
化粧品の電子商取引が活発に発展するにつれて、オンラインマーケティングは化粧品マーケティングの話題の焦...
著者 |アマン・カンドラ翻訳者 |ブガッティ企画 |ウー・ムー独自のサーバーを構築するには、多額の先...
コンテンツとは、インターネット上で公開されるすべての情報を指します。コンテンツは、ユーザーが読んでニ...
インターネット時代は百花繚乱で、タオバオのプロモーション方法も多様化しています。その中でも、ソフトテ...
現象早朝、運用保守チームが就寝したところ、ビジネス開発チームからの電話で起こされました。「おい!また...
陳念が以前書いた「ソーシャル ネットワーキング プラットフォームと SEO が出会うとき」という記事...
[[406175]] Linkerd 2.10 の中国語マニュアルは継続的に改訂および更新されていま...
多くのウェブマスターは、フォーラムの外部リンクが新しいウェブサイトの外部リンクとして最も一般的に使用...
1. SaaS は収益性がありますか?私が受けたコンサルティング サービスの依頼の多くは規模と成長に...