18.10. DNS [operator.openshift.io/v1]
- 描述
- DNS 管理 CoreDNS 组件,为集群中的 pod 和服务提供名称解析服务。红帽支持基于 DNS 的服务发现规格: https://github.com/kubernetes/dns/blob/master/docs/specification.md 更多详情: https://kubernetes.io/docs/tasks/administer-cluster/coredns
- 类型
-
对象
18.10.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 是 DNS 所需的行为的规范。 |
|
| status 是 DNS 的最新观察到的状态。 |
18.10.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 是 DNS 所需的行为的规范。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| managementState 指明 DNS Operator 是否应该管理集群 DNS |
|
| NodePlacement 提供对 DNS pod 调度的显式控制。通常,在每个节点上运行 DNS pod 很有用,以便 DNS 查询始终由本地 DNS pod 处理,而不是将网络传递给另一节点上的 DNS pod。但是,安全策略可能需要限制将 DNS pod 放置到特定的节点。例如,如果安全策略禁止任意节点上的 pod 与 API 通信,可以指定节点选择器将 DNS pod 限制到允许与 API 通信的节点。相反,如果需要在特定污点的节点上运行 DNS pod,可以为该污点指定一个容限。如果未设置,则使用默认值。如需了解更多详细信息,请参阅 nodePlacement。 |
|
| 服务器是 DNS 解析器的列表,它为集群域范围以外的一个或多个子域提供名称查询委托。如果服务器由多个服务器组成,则使用最大后缀匹配来确定服务器。例如,如果有两个服务器,一个用于"foo.com",另一个用于 "a.foo.com",而名称查询则用于 "www.a.foo.com",它将路由到具有 Zone "a.foo.com" 的服务器。如果此字段是 nil,则不会创建任何服务器。 |
|
| 服务器定义在 CoreDNS 实例上运行的服务器的架构。 |
18.10.1.2. .spec.nodePlacement 复制链接链接已复制到粘贴板!
- 描述
- NodePlacement 提供对 DNS pod 调度的显式控制。通常,在每个节点上运行 DNS pod 很有用,以便 DNS 查询始终由本地 DNS pod 处理,而不是将网络传递给另一节点上的 DNS pod。但是,安全策略可能需要限制将 DNS pod 放置到特定的节点。例如,如果安全策略禁止任意节点上的 pod 与 API 通信,可以指定节点选择器将 DNS pod 限制到允许与 API 通信的节点。相反,如果需要在特定污点的节点上运行 DNS pod,可以为该污点指定一个容限。如果未设置,则使用默认值。如需了解更多详细信息,请参阅 nodePlacement。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| nodeSelector 是应用到 DNS pod 的节点选择器。如果为空,则使用默认值,这目前如下:kubernetes.io/os: linux this 默认为更改。如果设置,则使用指定的选择器并替换默认值。 |
|
| 容限(toleration)是应用于 DNS pod 的容限列表。如果为空,DNS 操作器会为 "node-role.kubernetes.io/master" 污点设置一个容限。这个默认值可能会改变。在不包括 "node-role.kubernetes.io/master" 污点的情况下指定容限可能会存在风险,因为它可能会在所有 worker 节点不可用时造成停机。请注意,守护进程控制器也会添加一些容限。请参阅 https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ |
|
| 附加此 Toleration 的 pod,以使用匹配的 operator <operator> 来容许与 triple <key,value,effect> 匹配的任何污点。 |
18.10.1.3. .spec.nodePlacement.tolerations 复制链接链接已复制到粘贴板!
- 描述
- 容限(toleration)是应用于 DNS pod 的容限列表。如果为空,DNS 操作器会为 "node-role.kubernetes.io/master" 污点设置一个容限。这个默认值可能会改变。在不包括 "node-role.kubernetes.io/master" 污点的情况下指定容限可能会存在风险,因为它可能会在所有 worker 节点不可用时造成停机。请注意,守护进程控制器也会添加一些容限。请参阅 https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
- 类型
-
array
18.10.1.4. .spec.nodePlacement.tolerations[] 复制链接链接已复制到粘贴板!
- 描述
- 附加此 Toleration 的 pod,以使用匹配的 operator <operator> 来容许与 triple <key,value,effect> 匹配的任何污点。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| effect 表示污点效果要匹配的污点。空意味着匹配所有污点效果。指定后,允许的值为 NoSchedule、PreferNoSchedule 和 NoExecute。 |
|
| key 是容限应用到的污点键。empty 表示与所有污点键匹配。如果键为空,运算符必须是 Exists;此组合意味着匹配所有值和所有键。 |
|
| 运算符表示键与值的关系。有效的运算符为 Exists 和 Equal。默认值为 Equal。exists 等同于值的通配符,以便 pod 可以容忍特定类别的所有污点。 |
|
| tolerationSeconds 代表容限(必须具有 NoExecute effect,否则此字段将被忽略)容许污点的时间周期。默认情况下,它没有被设置,这意味着容许污点(不要驱除)。系统会将零值和负值视为 0 (立即撤离)。 |
|
| value 是容限匹配的污点值。如果运算符是 Exists,则该值应该为空,否则仅是一个常规字符串。 |
18.10.1.5. .spec.servers 复制链接链接已复制到粘贴板!
- 描述
- 服务器是 DNS 解析器的列表,它为集群域范围以外的一个或多个子域提供名称查询委托。如果服务器由多个服务器组成,则使用最大后缀匹配来确定服务器。例如,如果有两个服务器,一个用于"foo.com",另一个用于 "a.foo.com",而名称查询则用于 "www.a.foo.com",它将路由到具有 Zone "a.foo.com" 的服务器。如果此字段是 nil,则不会创建任何服务器。
- 类型
-
array
18.10.1.6. .spec.servers[] 复制链接链接已复制到粘贴板!
- 描述
- 服务器定义在 CoreDNS 实例上运行的服务器的架构。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| forwardPlugin 定义了将 CoreDNS 配置为将 DNS 信息代理到上游解析器的模式。 |
|
| name 是必需的,并为服务器指定唯一名称。名称必须符合 rfc6335 的服务名称语法。 |
|
| zones 是必需的,并指定服务器对其具有权威的子域。zones 必须符合子域的 rfc1123 定义。指定集群域(例如:"cluster.local")无效。 |
18.10.1.7. .spec.servers[].forwardPlugin 复制链接链接已复制到粘贴板!
- 描述
- forwardPlugin 定义了将 CoreDNS 配置为将 DNS 信息代理到上游解析器的模式。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
策略定义要选择上游解析器的策略。有三个值: |
|
|
|
18.10.1.8. .status 复制链接链接已复制到粘贴板!
- 描述
- status 是 DNS 的最新观察到的状态。
- 类型
-
对象
- 必填
-
clusterDomain
-
clusterIP
-
属性 | 类型 | 描述 |
---|---|---|
|
| clusterDomain 是 DNS 服务的本地集群 DNS 域后缀。这是一个在 RFC 1034 中定义的子域,第 3.5 节 :https://tools.ietf.org/html/rfc1034#section-3.5 示例: "cluster.local" more info: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service |
|
| ClusterIP 是提供此 DNS 的服务 IP。如果是默认 DNS,这是一个已知的 IP,用作使用默认 ClusterFirst DNS 策略的 pod 的默认名称服务器。通常,此 IP 可以在 pod 的 spec.dnsConfig.nameservers 列表中指定,或者在从集群中执行名称解析时明确使用。示例: dig foo.com @<service IP> 更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies |
|
| 条件提供有关集群中 DNS 状态的信息。这些是支持的 DNS 条件:如果满足以下条件,则为 True :如果满足以下条件,则为 True。-如果这些条件没有满意,则为 False。 |
|
| OperatorCondition 只是标准条件字段。 |
18.10.1.9. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 条件提供有关集群中 DNS 状态的信息。这些是支持的 DNS 条件:如果满足以下条件,则为 True :如果满足以下条件,则为 True。-如果这些条件没有满意,则为 False。
- 类型
-
array
18.10.1.10. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- OperatorCondition 只是标准条件字段。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
|
18.10.2. API 端点 复制链接链接已复制到粘贴板!
可用的 API 端点如下:
/apis/operator.openshift.io/v1/dnses
-
DELETE
:删除 DNS 的集合 -
GET
:列出 DNS 类型的对象 -
POST
:创建 DNS
-
/apis/operator.openshift.io/v1/dnses/{name}
-
DELETE
:删除 DNS -
GET
:读取指定的 DNS -
PATCH
:部分更新指定的 DNS -
PUT
:替换指定的 DNS
-
/apis/operator.openshift.io/v1/dnses/{name}/status
-
GET
:指定 DNS 的读取状态 -
PATCH
:部分更新指定 DNS 的状态 -
PUT
: 替换指定 DNS 的状态
-
18.10.2.1. /apis/operator.openshift.io/v1/dnses 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| 如果 'true',则输出被用户友善。 |
- HTTP 方法
-
DELETE
- 描述
- 删除 DNS 集合
参数 | 类型 | 描述 |
---|---|---|
|
| allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。没有实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。 |
|
| 从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须在没有 continue 字段的情况下重启其列表。否则,客户端可能会发送另一个列表请求,并带有 410 错误收到的令牌,服务器将通过从下一个密钥开始的列表进行响应,但从最新的快照开始,从 latest 快照发送另一个列表请求 - 在第一个列表请求中包含后创建、修改或删除的对象,只要其密钥在"next key"后。 当 watch 为 true 时,不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值启动监视,而不丢失任何修改。 |
|
| 用于限制返回的对象列表的选择器。默认为任何内容。 |
|
| 通过标签限制返回的对象列表的选择器。默认为任何内容。 |
|
| 限制是列表调用要返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的"continue"字段设置为可用于同一初始查询的值,以检索下一个结果集。在过滤所有请求的对象时,设置限制可能会返回比请求的项目数量少(最多为零项),客户端应只使用 continue 字段的存在来确定是否有更多结果可用。服务器可以选择不支持限制参数,并将返回所有可用的结果。如果指定了限制,并且 continue 字段为空,客户端可能会假设没有更多可用的结果。如果 watch 为 true,则不支持此字段。 服务器保证在使用 continue 时返回的对象与在没有限制的情况下发出单个列表调用 - 也就是说,在发出第一个请求后不会创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制的客户端接收一个非常大的结果较小的块可以确保它们看到所有可能的对象。如果在块列出期间更新对象,则返回第一次列表结果时存在的对象版本。 |
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
|
| resourceVersionMatch 决定 resourceVersion 如何应用到列出调用。强烈建议您为设置了 resourceVersion 的列表调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions。 默认为未设置 |
|
| list/watch 调用的超时。这限制了调用的时间,无论任何活动或不活跃。 |
|
| 观察对描述的资源的更改,并将其作为添加、更新和删除通知流返回。指定 resourceVersion。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 DNS 类型的对象
参数 | 类型 | 描述 |
---|---|---|
|
| allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。没有实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。 |
|
| 从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须在没有 continue 字段的情况下重启其列表。否则,客户端可能会发送另一个列表请求,并带有 410 错误收到的令牌,服务器将通过从下一个密钥开始的列表进行响应,但从最新的快照开始,从 latest 快照发送另一个列表请求 - 在第一个列表请求中包含后创建、修改或删除的对象,只要其密钥在"next key"后。 当 watch 为 true 时,不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值启动监视,而不丢失任何修改。 |
|
| 用于限制返回的对象列表的选择器。默认为任何内容。 |
|
| 通过标签限制返回的对象列表的选择器。默认为任何内容。 |
|
| 限制是列表调用要返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的"continue"字段设置为可用于同一初始查询的值,以检索下一个结果集。在过滤所有请求的对象时,设置限制可能会返回比请求的项目数量少(最多为零项),客户端应只使用 continue 字段的存在来确定是否有更多结果可用。服务器可以选择不支持限制参数,并将返回所有可用的结果。如果指定了限制,并且 continue 字段为空,客户端可能会假设没有更多可用的结果。如果 watch 为 true,则不支持此字段。 服务器保证在使用 continue 时返回的对象与在没有限制的情况下发出单个列表调用 - 也就是说,在发出第一个请求后不会创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制的客户端接收一个非常大的结果较小的块可以确保它们看到所有可能的对象。如果在块列出期间更新对象,则返回第一次列表结果时存在的对象版本。 |
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
|
| resourceVersionMatch 决定 resourceVersion 如何应用到列出调用。强烈建议您为设置了 resourceVersion 的列表调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions。 默认为未设置 |
|
| list/watch 调用的超时。这限制了调用的时间,无论任何活动或不活跃。 |
|
| 观察对描述的资源的更改,并将其作为添加、更新和删除通知流返回。指定 resourceVersion。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 DNS
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有空运行阶段都会被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
18.10.2.2. /apis/operator.openshift.io/v1/dnses/{name} 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| DNS 的名称 |
参数 | 类型 | 描述 |
---|---|---|
|
| 如果 'true',则输出被用户友善。 |
- HTTP 方法
-
DELETE
- 描述
- 删除 DNS
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有空运行阶段都会被处理 |
|
| 应该删除对象前的持续时间(以秒为单位)。值必须是非负整数。值零表示立即删除。如果这个值是 nil,则使用指定类型的默认宽限期。如果没有指定,则默认为每个对象值。零表示立即删除。 |
|
| 弃用:请使用 PropagationPolicy,此字段将在 1.7 中被弃用。应该依赖的对象被孤立。如果为 true/false,"orphan"终结器从对象的终结器列表添加到/删除。可以设置此字段或 PropagationPolicy,但不能同时设置两者。 |
|
| 是否及如何执行垃圾回收。此字段或 OrphanDependents 可以设置,但不能同时设置两者。默认策略由 metadata.finalizers 和特定于资源的默认策略中设置的现有终结器决定。可接受的值为: 'Orphan' - 孤立依赖; 'Background' - 允许垃圾收集器在后台删除依赖的依赖关系; 'Foreground' - 一个删除前台所有依赖的级联策略。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 DNS
参数 | 类型 | 描述 |
---|---|---|
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 DNS
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有空运行阶段都会被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 DNS
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有空运行阶段都会被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| DNS 的名称 |
参数 | 类型 | 描述 |
---|---|---|
|
| 如果 'true',则输出被用户友善。 |
- HTTP 方法
-
GET
- 描述
- 指定 DNS 的读取状态
参数 | 类型 | 描述 |
---|---|---|
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 指定 DNS 的部分更新状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有空运行阶段都会被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 DNS 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有空运行阶段都会被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|