Dapr 配置选项概述
关于 Dapr 配置以及如何设置应用程序选项的信息
Sidecar 配置
设置 Sidecar 选项配置
自托管模式的 Sidecar
在自托管模式下,Dapr 配置通过配置文件进行定义,如 config.yaml
。 默认情况下,Dapr sidecar 会在默认的 Dapr 目录下寻找运行时配置,在 Linux / MacOS操作系统下,位置为 $HOME/.dapr/config.yaml
, Windows操作系统下则为 %USERPROFILE%\.dapr\config.yaml
也可以在运行 dapr run
CLI 命令时,通过使用 --config
标志来制定 Dapr sidecar 所读取的配置文件所在的位置。
Kubernetes 模式的 Sidecar
在 Kubernetes 模式下,Dapr 可以通过集群中的一个配置 CRD 进行配置。 例如:
kubectl apply -f myappconfig.yaml
您也可以使用 Dapr CLI 工具列举查看当前的配置 CRD 列表:
dapr configurations -k
也可以使用 dapr.io/config
注解对指定的 Dapr sidecar 应用特定的配置。 例如:
annotations:
dapr.io/enabled: "true"
dapr.io/app-id: "nodeapp"
dapr.io/app-port: "3000"
dapr.io/config: "myappconfig"
注意: 还有更多的 Kubernetes 注解 可以用来配置 Dapr sidecar,通过 sidecar injector 系统服务来激活。
Sidecar 配置
Dapr 应用 sidecar 提供以下配置选项;
Tracing(调用链追踪)
链路追踪配置用于为应用程序开启调用链追踪功能。
Configuration
sepc下的 tracing
部分包含以下属性:
tracing:
samplingRate: "1"
zipkin:
endpointAddress: "http://zipkin.default.svc.cluster.local:9411/api/v2/spans"
下面的表格给出了调用链追踪功能可配置的属性
属性 | 数据类型 | 描述 |
---|---|---|
samplingRate | string | 设置采样率,可以用来控制追踪功能是否开启。 |
zipkin.endpointAddress | string | 设置 Zipkin 服务器地址。 |
samplingRate
用来控制调用链追踪是否启用。 要禁用采样率 , 可以在配置文件中设置 samplingRate : "0"
。 SamplingRate 的有效值在0到1之间。 系统将根据采样率配置的数值决定一条 trace span 是否要被采样。 如果设置 samplingRate : "1"
,将会对所有的调用链进行采样。 默认情况下,采样率配置为 (0.0001),即每10,000条请求中会有一条被采样。
请参阅 分布式可观测性追踪 了解更多信息。
指标
配置中的 metrics 部分用来为应用开启或禁用度量功能。
Configuration
sepc下的 metrics
部分包含以下属性:
metrics:
enabled: true
下面的表格给出了度量功能可配置的属性
属性 | 数据类型 | 描述 |
---|---|---|
enabled | boolean | 是否启用度量功能。 |
请参阅 度量文档 了解更多信息。
中间件
中间件配置用于配置一系列可命名的HTTP管道处理器。Configuration
spec 下的httpPipeline
部分包含以下的配置属性:
httpPipeline:
handlers:
- name: oauth2
type: middleware.http.oauth2
- name: uppercase
type: middleware.http.uppercase
下面的表格给出了HTTP 处理器可配置的属性
属性 | 数据类型 | 描述 |
---|---|---|
name | string | 中间件组件的名称。 |
type | string | 中间件组件的类型。 |
请参阅 中间件管道 一节以获取更多信息。
限定作用域的密钥储存控制
请参阅 Scoping secrets 指南查看更多信息,以及如何为应用程序设置密钥作用域的例子。
服务间调用的访问控制
请参阅 服务间调用允许列表 了解更多信息,以及如何设置允许列表的例子。
Sidecar 配置示例
下面的yaml内容展示了一个可以被应用于Dapr sidecar的配置文件:
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: myappconfig
namespace: default
spec:
tracing:
samplingRate: "1"
httpPipeline:
handlers:
- name: oauth2
type: middleware.http.oauth2
secrets:
scopes:
- storeName: localstore
defaultAccess: allow
deniedSecrets: ["redis-password"]
accessControl:
defaultAction: deny
trustDomain: "public"
policies:
- appId: app1
defaultAction: deny
trustDomain: 'public'
namespace: "default"
operations:
- name: /op1
httpVerb: ['POST', 'GET']
action: deny
- name: /op2/*
httpVerb: ["*"]
action: allow
控制平面配置
在 Dapr 控制平面系统中,安装了一个名为default
的配置文件,用于应用全局配置。 这个配置仅在Dapr部署到Kubernetes中时生效。
控制平面配置列表
在 Dapr 控制平面中,可以使用以下配置项:
属性 | 数据类型 | 描述 |
---|---|---|
enabled | bool | 配置mtls是否开启 |
allowedClockSkew | string | 证书到期时,基于本地时钟偏差给出的额外过期时间。 默认值为15分钟。 |
workloadCertTTL | string | 证书有效时间。 默认值为 24 小时。 |
请参阅 Mutual TLS 和 安全概念 了解更多信息。
控制平面配置示例
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: default
namespace: default
spec:
mtls:
enabled: true
allowedClockSkew: 15m
workloadCertTTL: 24h