在自托管模式下,Dapr 配置通过配置文件进行定义,如 config.yaml
。 默认情况下,Dapr sidecar 会在默认的 Dapr 目录下寻找运行时配置,在 Linux / MacOS操作系统下,位置为 $HOME/.dapr/config.yaml
, Windows操作系统下则为 %USERPROFILE%\.dapr\config.yaml
也可以在运行 dapr run
CLI 命令时,通过使用 --config
标志来制定 Dapr 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"
Note: There are more Kubernetes annotations available to configure the Dapr sidecar on activation by sidecar Injector system service.
Dapr 应用 sidecar 提供以下配置选项;
链路追踪配置用于为应用程序开启调用链追踪功能。
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条请求中会有一条被采样。
See Observability distributed tracing for more information
配置中的 metrics 部分用来为应用开启或禁用度量功能。
Configuration
sepc下的 metrics
部分包含以下属性:
metrics:
enabled: true
下面的表格给出了度量功能可配置的属性
属性 | 数据类型 | 说明 |
---|---|---|
enabled | boolean | 是否启用度量功能。 |
See metrics documentation for more information
中间件配置用于配置一系列可命名的HTTP管道处理器。Configuration
spec 下的httpPipeline
部分包含以下的配置属性:
httpPipeline:
handlers:
- name: oauth2
type: middleware.http.oauth2
- name: uppercase
type: middleware.http.uppercase
下面的表格给出了HTTP 处理器可配置的属性
属性 | 数据类型 | 说明 |
---|---|---|
name | string | 中间件组件的名称。 |
type | string | 中间件组件的类型。 |
See Middleware pipelines for more information
See the Scoping secrets guide for information and examples on how to scope secrets to an application.
See the selectively enable Dapr APIs on the Dapr sidecar guide for information and examples on how to set ACLs on the building block APIs lists.
See the Allow lists for service invocation guide for information and examples on how to set allow lists with ACLs which using service invocation API.
See the preview features guide for information and examples on how to opt-in to preview features for a release. Preview feature enable new capabilities to be added that still need more time until they become generally available (GA) in the runtime.
下面的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 小时。 |
See the Mutual TLS HowTo and security concepts for more information.
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: default
namespace: default
spec:
mtls:
enabled: true
allowedClockSkew: 15m
workloadCertTTL: 24h