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.
- Generowanie certyfikatów niestandardowych
Utwórz własny certyfikat niestandardowy; na przykład certyfikat usługi Azure Key Vault. - Ręczne aktualizowanie certyfikatu niestandardowego
Postępuj zgodnie z instrukcjami podanymi w dokumentacji open source języka Dapr, aby ręcznie zaktualizować certyfikaty niestandardowe przy użyciu poleceniakubectl
.
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
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:
- Ustawianie zmiennych środowiskowych serwera proxy przy użyciu
dapr.io/env
adnotacji:HTTP_PROXY
HTTPS_PROXY
NO_PROXY
- 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
- Dowiedz się więcej o korzystaniu z obrazów opartych na mariner w języku Dapr.
- Dowiedz się więcej o wdrażaniu systemu Linux platformy Azure w usłudze AKS.
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:
https://mcr.microsoft.com/daprio
Adres URL ściągania artefaktów języka Dapr.- Adresy URL ruchu wychodzącego wymagane dla usługi AKS lub Arc dla platformy Kubernetes.
Następne kroki
Azure Kubernetes Service