AKS(Azure Kubernetes Service) 및 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 인증서를 사용하여 통신을 암호화할 수 있습니다. 오픈 소스 Dapr 설명서에서 mTLS 인증서를 설정하는 방법에 대해 자세히 알아봅니다.
자체 인증서를 가져오거나 Dapr이 자체 서명된 루트 및 발급자 인증서를 자동으로 만들고 유지하도록 할 수 있습니다.
Important
인증서 를 명시적으로 구성하지 않으면 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 생성 자체 서명 인증서 생성
- Dapr CLI를 통해(권장)
CLI 가이드를 사용하여 Dapr의 루트 및 발급자 인증서 업그레이드를 참조하세요. - 명령을 통해
kubectl
Kubectl 가이드를 사용하여 Dapr의 업데이트 루트 또는 발급자 인증서를 참조합니다.
사용자 제공 x.509 인증서 관리
사용자 고유의 사용자 지정 인증서를 가져올 수도 있습니다.
- 사용자 지정 인증서 생성
사용자 고유의 사용자 지정 인증서를 만듭니다. 예를 들어 Azure Key Vault 인증서입니다. - 사용자 지정 인증서를 수동으로 업데이트
Dapr 오픈 소스 설명서에 제공된 지침에 따라 사용자 지정 인증서를 수동으로kubectl
업데이트합니다.
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"
참고 항목
구성 설정이 중요하고 보호해야 하는 경우(예: 인증서 관련 정보) --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.daprControlPlaneOs
및 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”
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
구성 설정 업데이트
Important
일부 구성 옵션은 만들기 후에 수정할 수 없습니다. 이러한 옵션을 조정하려면 다음 설정에 적용할 수 있는 확장을 삭제하고 다시 만들어야 합니다.
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"
2에서 3으로 dapr_operator.replicaCount
를 업데이트하려면 다음 명령을 사용합니다.
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 확장과 함께 아웃바운드 프록시를 사용하려면 다음을 수행합니다.
dapr.io/env
주석을 사용하여 프록시 환경 변수 설정:HTTP_PROXY
HTTPS_PROXY
NO_PROXY
- 사이드카에 프록시 인증서 설치.
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.applyCrds
를 false
로 설정하면 됩니다.
az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--configuration-settings "hooks.applyCrds=false"
참고 항목
CRD는 업그레이드 시에만 적용되며 다운그레이드 중에는 건너뜁니다.
네트워크 요구 사항 충족
AKS 및 Arc for Kubernetes에서 Dapr 확장을 사용하려면 https://:443
에서 다음 아웃바운드 URL이 작동해야 합니다.
https://mcr.microsoft.com/daprio
Dapr 아티팩트를 끄는 URL.- AKS 또는 Arc for Kubernetes에 필요한 아웃바운드 URL.
다음 단계
- 확장을 통해 Dapr Workflow를 배포하기 위한 자습서 살펴보기
- Dapr 오픈 소스 Dapr 확장으로 마이그레이션합니다.
Azure Kubernetes Service