Azure Kubernetes Service (AKS) および Arc 対応 Kubernetes 用の Dapr 拡張機能

Dapr を使うと、クラウドとエッジ上で動作し、多様な言語と開発者フレームワークをサポートする、回復性を備えたステートレスおよびステートフル アプリケーションを簡単に構築できます。 Dapr のサイドカー アーキテクチャにより、プラットフォームに依存しないコードを維持しながら、マイクロサービスの構築に関する次のような課題に取り組むことができます。

  • 他のサービスを確実かつ安全に呼び出す
  • pub/sub を使ったイベントドリブン アプリの構築
  • 複数のクラウド サービスとホスト (Kubernetes や VM など) 間で移植可能なアプリケーションを構築する

Note

Kubernetes の運用環境に Dapr をインストールする場合は、Dapr の本番環境での使用に関するガイドラインのドキュメント ページを参照してください。

しくみ

Dapr 拡張機能では、Azure CLI または Bicep テンプレートを使用して、AKS または Arc 対応 Kubernetes クラスターに Dapr コントロール プレーンをプロビジョニングし、次の Dapr サービスを作成します。

Dapr サービス 説明
dapr-operator Dapr 用のコンポーネントの更新と Kubernetes サービス エンドポイント (状態ストア、Pub/Sub など) が管理されます
dapr-sidecar-injector 注釈付きデプロイ ポッドに Dapr が挿入され、環境変数 DAPR_HTTP_PORTDAPR_GRPC_PORT が追加されて、ユーザー定義アプリケーションが有効になります。これで、Dapr ポート値をハードコーディングせずに Dapr と簡単に通信できます。
dapr-placement アクターのみに使用されます。 アクター インスタンスをポッドにマップするマッピング テーブルが作成されます。
dapr-sentry サービス間の mTLS が管理され、証明機関として機能します。 詳細については、セキュリティの概要に関するページをお読みください。

Dapr がクラスターにインストールされた後、デプロイにいくつか注釈を追加することで、Dapr 構成要素 API を使用して開発を開始できます。 構成要素 API の詳細な概要とそれらを最大限に活用する方法については、Dapr の構成要素の概要に関するページを参照してください。

警告

AKS または Arc 対応 Kubernetes 拡張機能を使用して Dapr をインストールする場合、Dapr の以降の管理には、Dapr CLI ではなく拡張機能を引き続き使用することをお勧めします。 2 つのツールを組み合わせると、競合が発生し、望ましくない動作が発生する可能性があります。

前提条件

Dapr 拡張機能をインストール、デプロイ、構成する方法を選択します。

クラスター拡張機能用の Azure CLI 拡張機能を設定する

次のコマンドを実行して、k8s-extension Azure CLI 拡張機能をインストールします。

az extension add --name k8s-extension

k8s-extension 拡張機能が既にインストールされている場合は、次のコマンドを使用して最新バージョンに更新できます。

az extension update --name k8s-extension

KubernetesConfiguration リソース プロバイダーを登録する

クラスター拡張機能を以前に使用していない場合は、リソース プロバイダーをサブスクリプションに登録することが必要になる場合があります。 プロバイダー登録の状態は、次の例に示すように [az provider list][az-provider-list] コマンドを使用して確認できます。

az provider list --query "[?contains(namespace,'Microsoft.KubernetesConfiguration')]" -o table

"Microsoft.KubernetesConfiguration" プロバイダーが、次の出力例に示すように "Registered" と報告されます。

Namespace                          RegistrationState    RegistrationPolicy
---------------------------------  -------------------  --------------------
Microsoft.KubernetesConfiguration  Registered           RegistrationRequired

プロバイダーが NotRegistered として示される場合は、次の例で示すように az provider register を使用してプロバイダーを登録します。

az provider register --namespace Microsoft.KubernetesConfiguration

拡張機能を作成して AKS または Arc 対応 Kubernetes クラスターに Dapr をインストールする

Dapr 拡張機能をインストールするときは、クラスターの種類に対応するフラグ値を使用します。

  • AKS クラスター: --cluster-type managedClusters.
  • Arc 対応 Kubernetes クラスター: --cluster-type connectedClusters.

注意

AKS クラスターで Dapr OSS を使用していて、AKS 用の Dapr 拡張機能をインストールする場合は、Dapr 拡張機能に効率的に移行する方法の詳細を参照してください。

Dapr 拡張機能を作成します。この拡張機能により、AKS または Arc 対応 Kubernetes クラスターに Dapr がインストールされます。

たとえば、AKS クラスターに Dapr 拡張機能を使って最新バージョンの Dapr をインストールします。

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false

Dapr コントロール プレーンへの自動更新の構成

警告

Dapr コントロール プレーンの自動更新は、開発またはテスト環境でのみ有効にすることができます。 自動アップグレードは運用環境には適していません。

バージョンを指定せずに Dapr をインストールすると、--auto-upgrade-minor-version が "自動的に有効になり"、新しいリリース時にマイナー バージョンを自動的に更新するように Dapr コントロール プレーンが構成されます。

--auto-upgrade-minor-version パラメーターを指定し、値を false に設定することで、自動更新を無効にできます。

Dapr のバージョン管理は MAJOR.MINOR.PATCH 形式です。つまり、1.11.0 から 1.12.0 は "マイナー" バージョン アップグレードです。

--auto-upgrade-minor-version true

特定の Dapr バージョンを対象とする

Note

Dapr は、現在および以前のバージョンのみを含むローリング ウィンドウでサポートされています。 これらのサポートされているバージョンを最新の状態に維持する運用上の責任があります。 古いバージョンの Dapr がある場合、サポートされているバージョンを取得するには、中間アップグレードの実行が必要なことがあります。

特定のバージョンの Dapr をインストールしたり、以前のバージョンにロールバックしたりするには、同じコマンド ライン引数を使用します。 --auto-upgrade-minor-versionfalse に、--version をインストールする Dapr のバージョンに設定します。 version パラメーターを省略すると、拡張機能で最新バージョンの Dapr がインストールされます。 たとえば、Dapr 1.11.2 を使用するには、次のようにします。

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false \
--version 1.11.2

リリース トレーニングの選択

拡張機能を構成するときに、特定のリリース トレインから Dapr をインストールすることを選択できます。 次の 2 つのリリース トレイン値のいずれかを指定します。

説明
stable 既定値。
dev 早期リリース。試験的な機能を含めることができます。 運用には適していません。

次に例を示します。

--release-train stable

拡張機能のエラーのトラブルシューティング

拡張機能の作成または更新に失敗した場合は、Dapr 拡張機能のトラブルシューティング ガイドの提案と解決策をお試しください。

Dapr のトラブルシューティング

Dapr のエラーのトラブルシューティングについては、Dapr の一般的な問題と解決に関するガイドを参照してください。

拡張機能を削除する

拡張機能を削除し、AKS クラスターから Dapr を削除する必要がある場合は、次のコマンドを使用できます。

az k8s-extension delete --resource-group myResourceGroup --cluster-name myAKSCluster --cluster-type managedClusters --name dapr

または、Bicep テンプレートを削除するだけです。

次のステップ