Udostępnij za pośrednictwem


Konfigurowanie rozszerzenia Dapr dla projektu Kubernetes Service (AKS) i Kubernetes z obsługą usługi Arc

Po spełnieniu wymagań wstępnych dotyczących instalowania rozszerzenia Dapr można skonfigurować rozszerzenie Dapr, aby działało najlepiej dla Ciebie i projektu przy użyciu różnych opcji konfiguracji, takich jak:

  • Rotacja wygasających certyfikatów
  • Aprowizowanie języka Dapr z włączoną wysoką dostępnością
  • Ograniczanie, które z węzłów używa rozszerzenia Dapr
  • Ustawianie automatycznych aktualizacji definicji zasobów niestandardowych (CRD)
  • Konfigurowanie przestrzeni nazw wydania dapr

Rozszerzenie umożliwia ustawienie opcji konfiguracji języka Dapr przy użyciu parametru --configuration-settings w interfejsie wiersza polecenia platformy Azure lub configurationSettings właściwości w szablonie Bicep.

Zarządzanie certyfikatami mTLS

Rozszerzenie Dapr obsługuje szyfrowanie podczas przesyłania komunikacji między wystąpieniami języka Dapr przy użyciu płaszczyzny sterowania usługi Dapr Sentry, która jest centralnym urzędem certyfikacji. Za pomocą usługi Sentry można szyfrować komunikację przy użyciu certyfikatów x.509 z podpisem własnym lub dostarczonych przez użytkownika. Dowiedz się więcej o konfigurowaniu certyfikatów mTLS w dokumentacji języka Dapr typu open source.

Możesz wprowadzić własne certyfikaty lub zezwolić dapr na automatyczne tworzenie i utrwalanie certyfikatów głównych i wystawców z podpisem własnym.

Ważne

Jeśli nie skonfigurujesz jawnie certyfikatów, usługa Dapr domyślnie generuje certyfikaty z podpisem własnym, które są zwykle ważne przez 1 rok. Obecnie używanie certyfikatów z podpisem własnym generowanych przez usługę Dapr nie jest zalecane. Najlepszym rozwiązaniem jest generowanie certyfikatów niestandardowych i ręczne aktualizowanie ich.

Zarządzanie certyfikatami z podpisem własnym wygenerowanym przez język Dapr

Jeśli nie podano żadnych certyfikatów niestandardowych, dapr automatycznie tworzy i utrwala certyfikaty z podpisem własnym, ważne przez 1 rok. Rozszerzenie Dapr instaluje dapr-trust-bundle wpis tajny, który zawiera informacje o certyfikacie w domyślnej dapr-system przestrzeni nazw.

Sprawdzanie wygaśnięcia bieżących certyfikatów z podpisem własnym wygenerowanych przez język Dapr

Możesz sprawdzić, kiedy certyfikat główny dapr klastra Kubernetes wygaśnie, używając interfejsu wiersza polecenia języka Dapr.

dapr mtls expiry

Oczekiwane dane wyjściowe:

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

Możesz również znaleźć datę wygaśnięcia bieżącego certyfikatu w danych tajnych kubernetes dapr-trust-bundle .

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

Oczekiwane dane wyjściowe:

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

Generowanie nowego certyfikatu z podpisem własnym wygenerowanego przez język Dapr

  • Za pośrednictwem interfejsu wiersza polecenia języka Dapr (zalecane)
    Zapoznaj się z przewodnikiem po uaktualnieniu certyfikatu głównego i wystawcy języka Dapr przy użyciu interfejsu wiersza polecenia .
  • Za pomocą kubectl poleceń zapoznaj się z tematem Aktualizowanie certyfikatów głównych lub wystawców języka Dapr przy użyciu przewodnika Kubectl .

Zarządzanie własnymi certyfikatami x.509 dostarczonymi przez użytkownika

Możesz również przynieść własne certyfikaty niestandardowe.

Aprowizuj język Dapr z włączoną wysoką dostępnością

Aprowizuj język Dapr z włączoną wysoką dostępnością, ustawiając global.ha.enabled parametr na true.

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"

Uwaga

Jeśli ustawienia konfiguracji są poufne i muszą być chronione (na przykład informacje związane z certyfikatem), przekaż --configuration-protected-settings parametr i wartość będzie chroniona przed odczytem.

Jeśli nie zostaną przekazane żadne ustawienia konfiguracji, konfiguracja języka Dapr jest domyślnie ustawiona na:

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

Aby uzyskać listę dostępnych opcji, zobacz Konfiguracja języka Dapr.

Ogranicz rozszerzenie do niektórych węzłów

W niektórych konfiguracjach można uruchamiać język Dapr tylko w niektórych węzłach. Rozszerzenie można ograniczyć, przekazując nodeSelector element w konfiguracji rozszerzenia. Jeśli żądany nodeSelector element zawiera ., należy je użyć jako ucieczki od powłoki i rozszerzenia. Na przykład następująca konfiguracja instaluje język Dapr tylko do węzłów za pomocą polecenia topology.kubernetes.io/zone: "us-east-1c":

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"

Aby zarządzać systemem operacyjnym i architekturą, użyj obsługiwanych wersji konfiguracji global.daprControlPlaneOs i global.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”

Instalowanie języka Dapr w wielu strefach dostępności w trybie wysokiej dostępności

Domyślnie usługa umieszczania używa klasy magazynu typu standard_LRS. Zaleca się utworzenie strefowo nadmiarowej klasy magazynu podczas instalowania języka Dapr w trybie wysokiej dostępności w wielu strefach dostępności. Aby na przykład utworzyć klasę zrs magazynu typu, dodaj storageaccounttype parametr :

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

Podczas instalowania języka Dapr użyj klasy magazynu użytej w pliku 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"

Konfigurowanie przestrzeni nazw wydania dapr

Przestrzeń nazw wydania można skonfigurować.

Rozszerzenie Dapr jest instalowane domyślnie w dapr-system przestrzeni nazw. Aby go zastąpić, użyj polecenia --release-namespace. Aby ponownie zdefiniować przestrzeń nazw, dołącz klaster --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

Dowiedz się, jak skonfigurować przestrzeń nazw wydania języka Dapr podczas migracji z języka Dapr typu open source do rozszerzenia Dapr.

Pokaż bieżące ustawienia konfiguracji

Użyj polecenia , az k8s-extension show aby wyświetlić bieżące ustawienia konfiguracji języka Dapr:

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

Aktualizowanie ustawień konfiguracji

Ważne

Niektórych opcji konfiguracji nie można zmodyfikować po utworzeniu. Korekty tych opcji wymagają usunięcia i odtworzenia rozszerzenia, które ma zastosowanie do następujących ustawień:

  • global.ha.*
  • dapr_placement.*

Wysoka dostępność jest domyślnie włączona. Wyłączenie tego rozszerzenia wymaga usunięcia i odtworzenia rozszerzenia.

Aby zaktualizować ustawienia konfiguracji języka Dapr, utwórz ponownie rozszerzenie z żądanym stanem. Załóżmy na przykład, że wcześniej utworzono i zainstalowano rozszerzenie przy użyciu następującej konfiguracji:

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" 

Aby zaktualizować element dapr_operator.replicaCount z dwóch do trzech, użyj następującego polecenia:

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"

Ustawianie wychodzącego serwera proxy dla rozszerzenia dapr dla lokalnej usługi Azure Arc

Jeśli chcesz użyć serwera proxy ruchu wychodzącego z rozszerzeniem Dapr dla usługi AKS, możesz to zrobić, wykonując następujące czynności:

  1. Ustawianie zmiennych środowiskowych serwera proxy przy użyciu dapr.io/env adnotacji:
    • HTTP_PROXY
    • HTTPS_PROXY
    • NO_PROXY
  2. Instalowanie certyfikatu serwera proxy w przyczepce.

Aktualizowanie wersji instalacji języka Dapr

Jeśli korzystasz z określonej wersji języka Dapr i nie masz --auto-upgrade-minor-version dostępnej wersji, możesz użyć następującego polecenia, aby uaktualnić lub obniżyć poziom języka 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

Poprzednie polecenie aktualizuje tylko płaszczyznę sterowania Dapr. Aby zaktualizować przyczepki języka Dapr, uruchom ponownie wdrożenia aplikacji:

kubectl rollout restart deploy/<DEPLOYMENT-NAME>

Korzystanie z obrazów opartych na systemie Linux na platformie Azure

W języku Dapr w wersji 1.8.0 można używać obrazów systemu Linux platformy Azure z rozszerzeniem Dapr. Aby ich używać, ustaw flagę global.tag :

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

Wyłączanie automatycznych aktualizacji CRD

Z języka Dapr w wersji 1.9.2 pliki CRD są automatycznie uaktualniane podczas uaktualniania rozszerzeń. Aby wyłączyć to ustawienie, możesz ustawić wartość hooks.applyCrds false.

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

Uwaga

CrD są stosowane tylko w przypadku uaktualnień i są pomijane podczas obniżania.

Spełnianie wymagań sieciowych

Rozszerzenie Dapr wymaga następujących adresów URL ruchu wychodzącego, https://:443 aby działały w usłudze AKS i usłudze Arc dla platformy Kubernetes:

  1. https://mcr.microsoft.com/daprio Adres URL ściągania artefaktów języka Dapr.
  2. Adresy URL ruchu wychodzącego wymagane dla usługi AKS lub Arc dla platformy Kubernetes.

Następne kroki