一般情况下,Kubernetes 模式下的 Kubernetes DNS 名称解析由 Dapr 自动配置。除非需要对 Kubernetes 名称解析组件进行特定的覆盖,否则无需额外配置即可使用 Kubernetes DNS 作为名称解析提供者。
如果需要进行覆盖,可以在 Dapr 配置 CRD 中,添加一个 nameResolution
规范,并将 component
字段设置为 "kubernetes"
。其他配置字段可以根据需要在 configuration
映射中设置,如下所示。
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: appconfig
spec:
nameResolution:
component: "kubernetes"
configuration:
clusterDomain: "cluster.local" # 与 template 字段互斥
template: "{{.ID}}-{{.Data.region}}.internal:{{.Port}}" # 与 clusterDomain 字段互斥
该组件通过 Kubernetes 集群的 DNS 提供者来解析目标应用。您可以在 Kubernetes 文档中了解更多信息。
配置规范固定为 Consul API 的 v1.3.0 版本
字段 | 必需 | 类型 | 详情 | 示例 |
---|---|---|---|---|
clusterDomain | N | string | 用于解析地址的集群域。此字段与 template 字段互斥。 | cluster.local |
template | N | string | 使用 text/template 解析地址时的模板字符串。模板将由 ResolveRequest 结构中的字段填充。此字段与 clusterDomain 字段互斥。 | {{.ID}}-{{.Data.region}}.{{.Namespace}}.internal:{{.Port}} |