Azure Kubernetes Service (AKS) および Arc 対応 Kubernetes 用の Dapr 拡張機能をインストールする

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

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

注

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 つのツールを組み合わせると、競合が発生し、望ましくない動作が発生する可能性があります。

前提条件

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 --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

Azure サブスクリプションに ExtensionTypes 機能を登録する

ExtensionTypes 機能を Azure サブスクリプションに登録する必要があります。 ターミナルで、正しいサブスクリプションを使用していることを確認します。

az account set --subscription <your-azure-subscription-ID>

ExtensionTypes 機能を登録します。

az feature registration create --namespace Microsoft.KubernetesConfiguration --name ExtensionTypes

機能の登録には時間がかかる場合があります。 数分後、次のコマンドを使用して登録の状態を確認します。

az feature show --namespace Microsoft.KubernetesConfiguration --name ExtensionTypes

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

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

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

注

AKS クラスターで Dapr OSS を使用していて、AKS 用の Dapr 拡張機能をインストールする場合は、「 Dapr OSS から Dapr 拡張機能への移行」を参照してください。

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

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

az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false

マネージド AKS クラスターを最新バージョンに保つ

環境 (開発、テスト、または運用環境) に基づいて、最新の安定した Dapr バージョンを使用することができます。

リリース トレインを選択する

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

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

次に例を示します。

--release-train stable

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

警告

自動アップグレードは運用環境には適していません。 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 バージョンを表示する

運用環境で最新の Dapr バージョンにアップグレードするには、手動でアップグレードする必要があります。 まず、マネージド AKS クラスターで利用できる安定した Dapr バージョンの一覧を表示します。 次のコマンドを実行します。

az k8s-extension extension-types list-versions-by-cluster --resource-group <your-resource-group> --cluster-name <your-AKS-cluster> --cluster-type managedClusters --extension-type microsoft.dapr --release-train stable

マネージド AKS クラスターで利用できる最新の安定した Dapr バージョンを確認するには、次のコマンドを実行します。

az k8s-extension extension-types list-versions-by-cluster --resource-group <your-resource-group> --cluster-name <your-AKS-cluster> --cluster-type managedClusters --extension-type microsoft.dapr  --release-train stable --show-latest

使用できる安定した Dapr バージョンの一覧を "場所ごと" で表示するには、以下を行います。

  1. ExtensionTypes機能が Azure サブスクリプションに登録されていることを確認します。
  2. 次のコマンドを実行します。
az k8s-extension extension-types list-versions-by-location --location westus --extension-type microsoft.dapr

特定の Dapr バージョンをターゲットとする

次に、Dapr を最新の安定バージョンに手動で更新します。

注

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

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

az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false \
--version 1.14.4-msft.10

トラブルシューティング

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

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

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

Dapr の 一般的な問題と解決策ガイドを参照して、拡張機能に関連しない Dapr オープンソース エラーのトラブルシューティングを行います。

支援

拡張機能の使用中に Dapr ランタイムのセキュリティ リスクと回帰が発生している場合は、Dapr オープンソース プロジェクトで問題を開。

Dapr プロジェクト Discord でディスカッションを開始することもできます。

クラスターから Dapr 拡張機能を削除する

AKS から Dapr 拡張機能をアンインストールするプロセスでは、インストール中に作成されたカスタム リソース定義 (CRD) は削除されません。 これらの CRD は、拡張機能のインストールとアンインストール中にリコンサイルに不可欠な残余コンポーネントとしてクラスターに残ります。

これらの CRD のクラスターをクリーンアップするには、Dapr 拡張機能が AKS から完全にアンインストールされた 後 に手動で削除できます。

拡張機能をアンインストールする

次のコマンドを使用して、AKS クラスターから拡張機能を削除します。

az k8s-extension delete --resource-group <your-resource-group> --cluster-name <your-AKS-cluster> --cluster-type managedClusters --name dapr

または、Bicep テンプレートを使用している場合は、テンプレートを削除できます。

クラスター内の CRD を一覧表示する

削除する CRD を見つけるには、次のコマンドを実行します。

kubectl get crds | findstr dapr.io

次のステップ