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_PORT と DAPR_GRPC_PORT が追加されて、ユーザー定義アプリケーションが有効になります。これで、Dapr ポート値をハードコーディングせずに Dapr と簡単に通信できます。 |
dapr-placement |
アクターのみに使用されます。 アクター インスタンスをポッドにマップするマッピング テーブルが作成されます。 |
dapr-sentry |
サービス間の mTLS が管理され、証明機関として機能します。 詳細については、セキュリティの概要に関するページをお読みください。 |
Dapr がクラスターにインストールされた後、デプロイにいくつか注釈を追加することで、Dapr 構成要素 API を使用して開発を開始できます。 構成要素 API の詳細な概要とそれらを最大限に活用する方法については、Dapr の構成要素の概要に関するページを参照してください。
警告
AKS または Arc 対応 Kubernetes 拡張機能を使用して Dapr をインストールする場合、Dapr の以降の管理には、Dapr CLI ではなく拡張機能を引き続き使用することをお勧めします。 2 つのツールを組み合わせると、競合が発生し、望ましくない動作が発生する可能性があります。
前提条件
- Azure サブスクリプション。 お持ちでない場合は、 無料アカウントを作成します。
- 最新バージョンの Azure CLI をインストールします。
- まだない場合は、AKS クラスターを作成するか、Arc 対応 Kubernetes クラスターを接続する必要があります。
- Azure Kubernetes Service RBAC 管理者ロールがあることを確認します
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-version
を false
に、--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 テンプレートを削除するだけです。
次のステップ
- 詳細については、Dapr 拡張機能で設定できるその他の設定と基本設定に関する記事を参照してください。
- AKS クラスターに Dapr が正常にプロビジョニングされたので、サンプル アプリケーションのデプロイを試します。
- AKS 用 Dapr 拡張機能で Dapr ワークフローを試す