20.4. 外部 DNS Operator 配置参数

External DNS Operator 包括以下配置参数。

20.4.1. 外部 DNS Operator 配置参数

External DNS Operator 包括以下配置参数:

参数描述

spec

启用云供应商的类型。

spec:
  provider:
    type: AWS 1
    aws:
      credentials:
        name: aws-access-key 2
1
定义可用选项,如 AWS、GCP、Azure 和 Infoblox。
2
为云供应商定义 secret 名称。

zones

允许您根据域指定 DNS 区域。如果没有指定区,External DNS 资源会发现云供应商帐户中存在的所有区域。

zones:
- "myzoneid" 1
1
指定 DNS 区域的名称。

domains

允许您根据域指定 AWS 区域。如果没有指定域,External DNS 资源会发现云供应商帐户中存在的所有区域。

domains:
- filterType: Include 1
  matchType: Exact 2
  name: "myzonedomain1.com" 3
- filterType: Include
  matchType: Pattern 4
  pattern: ".*\\.otherzonedomain\\.com" 5
1
确保 ExternalDNS 资源包含域名。
2
指示 ExtrnalDNS 指示域匹配必须完全匹配,而不是正则表达式匹配。
3
定义域的名称。
4
ExternalDNS 资源中设置 regex-domain-filter 标志。您可以使用 Regex 过滤器来限制可能的域。
5
定义 ExternalDNS 资源用来过滤目标区的域的 regex 模式。

source

允许您指定 DNS 记录、ServiceRoute 的源。

source: 1
  type: Service 2
  service:
    serviceType:3
      - LoadBalancer
      - ClusterIP
  labelFilter: 4
    matchLabels:
      external-dns.mydomain.org/publish: "yes"
  hostnameAnnotation: "Allow" 5
  fqdnTemplate:
  - "{{.Name}}.myzonedomain.com" 6
1
定义 DNS 记录源的设置。
2
ExternalDNS 资源使用 Service 类型作为创建 DNS 记录的源。
3
ExternalDNS 资源中设置 service-type-filter 标志。serviceType 包含以下字段:
  • 默认:LoadBalancer
  • 预期:ClusterIP
  • NodePort
  • LoadBalancer
  • ExternalName
4
确保控制器只考虑与标签过滤器匹配的资源。
5
hostnameAnnotation 的默认值为 Ignore,它指示 ExternalDNS 使用字段 fqdnTemplates 中指定的模板生成 DNS 记录。当值是 Allow,DNS 记录根据 external-dns.alpha.kubernetes.io/hostname 注解中指定的值生成。
6
外部 DNS Operator 使用一个字符串从没有定义主机名的源生成 DNS 名称,或者与 fake 源配对时添加主机名后缀。
source:
  type: OpenShiftRoute 1
  openshiftRouteOptions:
    routerName: default 2
    labelFilter:
      matchLabels:
        external-dns.mydomain.org/publish: "yes"
1
创建 DNS 记录。
2
如果源类型是 OpenShiftRoute,您可以传递 Ingress Controller 名称。ExternalDNS 资源使用 Ingress Controller 的规范名称作为 CNAME 记录的目标。