次の方法で共有


Azure Kubernetes Service (AKS) と Arc 対応 Kubernetes プロジェクト用に Dapr 拡張機能を構成する

Dapr 拡張機能のインストールの前提条件を満たした後、さまざまな構成オプションを使って、自分と自分のプロジェクトにとって最適な動作になるように Dapr 拡張機能を次のように構成できます。

  • 期限切れが近い証明書のローテーション
  • 高可用性 (HA) を有効にした Dapr のプロビジョニング
  • Dapr 拡張機能を使うノードを制限する
  • カスタム リソース定義 (CRD) の自動更新の設定
  • Dapr リリース名前空間の構成

この拡張機能を使用すると、Azure CLI の --configuration-settings パラメーターまたは Bicep テンプレートの configurationSettings プロパティを使用して Dapr 構成オプションを設定できます。

mTLS 証明書を管理する

Dapr 拡張機能は、中央認証局 (CA) である Dapr Sentry サービス コントロール プレーンを使用した Dapr インスタンス間の通信の転送中の暗号化をサポートしています。 Sentry サービスを使用すると、自己署名証明書またはユーザー指定の x.509 証明書を使用して通信を暗号化できます。 mTLS 証明書の設定の詳細については、オープンソースの Dapr ドキュメントで確認してください。

独自の証明書を使用することも、Dapr に自己署名ルート証明書と発行者証明書を自動的に作成して保持させることもできます。

重要

証明書を明示的に構成しない場合、Dapr は既定の動作として自己署名証明書を生成し、これは通常 1 年間有効となります。 現在、Dapr によって生成された自己署名証明書の使用はお勧めしません。 ベスト プラクティスは、カスタム証明書を生成して手動で更新することです。

Dapr で生成された自己署名証明書を管理する

カスタム証明書を指定しなかった場合、Dapr は 1 年間有効な自己署名証明書を自動で作成して保持します。 Dapr 拡張機能は、既定の dapr-system 名前空間の下に証明書情報を含む dapr-trust-bundle シークレットをインストールします。

Dapr で生成された現在の自己署名証明書の有効期限を確認する

Dapr CLI を使用することで、Kubernetes クラスターの Dapr ルート証明書の有効期限が切れるタイミングを確認できます。

dapr mtls expiry

想定される出力:

Root certificate expires in 8759 hours. Expiry date: 2025-12-06 18:14:20 +0000 UTC

現在の証明書の有効期限は、Kubernetes dapr-trust-bundle シークレット データでも確認できます。

kubectl get secret dapr-trust-bundle -n dapr-system -o jsonpath='{.data.issuer\.crt}' | base64 -d | openssl x509 -noout -dates

想定される出力:

notBefore=Dec  6 17:59:20 2024 GMT
notAfter=Dec  6 18:14:20 2025 GMT

新しい Dapr で生成された自己署名証明書を生成する

独自のユーザー指定 x.509 証明書を管理する

独自のカスタム証明書を使用することもできます。

高可用性 (HA) を有効にして Dapr をプロビジョニングする

global.ha.enabled パラメーターを trueに設定して、高可用性 (HA) を有効にして Dapr をプロビジョニングします。

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2"

Note

構成設定が機密情報であり、保護する必要がある場合 (証明書関連情報など) は、--configuration-protected-settings パラメーターを渡すと、値が読み取られることを防げます。

構成設定を渡さない場合、Dapr 構成の既定値は次のようになります。

  ha:
    enabled: true
    replicaCount: 3
    disruption:
      minimumAvailable: ""
      maximumUnavailable: "25%"
  prometheus:
    enabled: true
    port: 9090
  mtls:
    enabled: true
    workloadCertTTL: 24h
    allowedClockSkew: 15m

使用可能なオプションの一覧については、Dapr の構成に関するページを参照してください。

拡張機能を特定のノードに制限する

一部の構成では、特定のノードでのみ Dapr を実行したい場合があります。 拡張機能の構成に nodeSelector を渡すことで拡張機能を制限できます。 求められる nodeSelector. が含まれる場合は、シェルと拡張機能からエスケープする必要があります。 たとえば、次の構成では、 topology.kubernetes.io/zone: "us-east-1c"を持つノードにのみ Dapr がインストールされます。

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.nodeSelector.kubernetes\.io/zone=us-east-1c"

OS とアーキテクチャを管理する場合は、global.daprControlPlaneOsglobal.daprControlPlaneArch の構成のサポートされているバージョンを使用します。

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.daprControlPlaneOs=linux” \
--configuration-settings "global.daprControlPlaneArch=amd64”

HA モードで複数の可用性ゾーンに Dapr をインストールする

既定では、配置サービスで、種類 standard_LRS のストレージ クラスが使用されます。 複数の可用性ゾーン間で HA モードで Dapr をインストールする際は、ゾーン冗長ストレージ クラス を作成することをお勧めします。 たとえば、zrs 型のストレージ クラスを作成するには、storageaccounttype パラメーターを追加します。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: custom-zone-redundant-storage
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
parameters:
  storageaccounttype: Premium_ZRS

Dapr をインストールするときは、YAML ファイルで使用したストレージ クラスを使用します。

az k8s-extension create --cluster-type managedClusters  
--cluster-name XXX  
--resource-group XXX  
--name XXX  
--extension-type Microsoft.Dapr  
--auto-upgrade-minor-version XXX  
--version XXX  
--configuration-settings "dapr_placement.volumeclaims.storageClassName=custom-zone-redundant-storage"

Dapr リリース名前空間の構成

リリース名前空間を構成できます。

既定では Dapr 拡張機能は dapr-system 名前空間にインストールされます。 オーバーライドするには、--release-namespace を使用します。 名前空間を再定義するには、クラスター --scope を含めます。

az k8s-extension create \
--cluster-type managedClusters \
--cluster-name dapr-aks \
--resource-group dapr-rg \
--name my-dapr-ext \
--extension-type microsoft.dapr \
--release-train stable \
--auto-upgrade false \
--version 1.9.2 \
--scope cluster \
--release-namespace dapr-custom

Dapr オープン ソースから Dapr 拡張機能に移行するときに Dapr リリース名前空間を構成する方法について説明します

現在の構成設定を表示する

az k8s-extension show コマンドを使用して、現在の Dapr 構成設定を表示します。

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

構成設定の更新

重要

一部の構成オプションは、作成後に変更できません。 これらのオプションを調整するには、次の設定に適用される拡張機能の削除と変更が必要です。

  • global.ha.*
  • dapr_placement.*

HA は既定で有効になっています。 無効にするには、拡張機能を削除して再作成する必要があります。

Dapr 構成設定を更新するには、目的の状態で拡張機能を再作成します。 たとえば、以前に次の構成を使用して拡張機能を作成およびインストールしたとします。

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \  
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" 

dapr_operator.replicaCount を 2 から 3 に更新するには、次のコマンドを使用します。

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=3"

Azure Arc オンプレミスの Dapr 拡張機能の送信プロキシを設定する

AKS 用の Dapr 拡張機能で送信プロキシを使用する場合は、次の方法で行うことができます。

  1. dapr.io/env 注釈を使用してプロキシ環境変数を設定します。
    • HTTP_PROXY
    • HTTPS_PROXY
    • NO_PROXY
  2. サイドカーへのプロキシ証明書のインストール

Dapr インストール バージョンの更新

特定の Dapr バージョンを使っていて、--auto-upgrade-minor-version を使用できない場合は、次のコマンドを使って Dapr をアップグレードまたはダウングレードできます。

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--version 1.12.0 # Version to upgrade or downgrade to

上記のコマンドを実行すると、Dapr コントロール プレーン "のみ" が更新されます。Dapr サイドカーを更新するには、アプリケーションのデプロイを再起動します。

kubectl rollout restart deploy/<DEPLOYMENT-NAME>

Azure Linux ベースのイメージの使用

Dapr バージョン 1.8.0 から、Dapr 拡張機能で Azure Linux イメージを使用できます。 これらを使用するには、次のように global.tag フラグを設定します。

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--set global.tag=1.10.0-mariner

CRD の自動更新を無効にする

Dapr バージョン 1.9.2 以降、拡張機能をアップグレードすると CRD が自動的にアップグレードされます。 この設定を無効にするには、hooks.applyCrdsfalse に設定できます。

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--configuration-settings "hooks.applyCrds=false"

Note

CRD はアップグレードの場合にのみ適用され、ダウングレード時にスキップされます。

ネットワーク要件を満たす

AKS と Arc for Kubernetes で Dapr 拡張機能を機能させるためには、 https://:443 に次の送信 URL が必要です。

  1. Dapr アーティファクトをプルするための https://mcr.microsoft.com/daprio URL。
  2. AKS または Arc for Kubernetes に必要な送信 URL

次のステップ