@@ -28,7 +28,7 @@ This page provides an overview of NodeLocal DNSCache feature in Kubernetes.
28
28
<!--
29
29
## Introduction
30
30
-->
31
- ## 引言
31
+ ## 引言 {#introduction}
32
32
33
33
<!--
34
34
NodeLocal DNSCache improves Cluster DNS performance by running a DNS caching agent
@@ -49,7 +49,7 @@ NodeLocal DNSCache 通过在集群节点上作为 DaemonSet 运行 DNS 缓存代
49
49
<!--
50
50
## Motivation
51
51
-->
52
- ## 动机
52
+ ## 动机 {#motivation}
53
53
54
54
<!--
55
55
* With the current DNS architecture, it is possible that Pods with the highest DNS QPS
@@ -66,8 +66,8 @@ NodeLocal DNSCache 通过在集群节点上作为 DaemonSet 运行 DNS 缓存代
66
66
and avoid UDP DNS entries filling up conntrack table.
67
67
-->
68
68
* 跳过 iptables DNAT 和连接跟踪将有助于减少
69
- [ conntrack 竞争] ( https://github.com/kubernetes/kubernetes/issues/56903 )
70
- 并避免 UDP DNS 条目填满 conntrack 表。
69
+ [ conntrack 竞争] ( https://github.com/kubernetes/kubernetes/issues/56903 ) 并避免
70
+ UDP DNS 条目填满 conntrack 表。
71
71
72
72
<!--
73
73
* Connections from the local caching agent to kube-dns service can be upgraded to TCP.
@@ -76,7 +76,7 @@ NodeLocal DNSCache 通过在集群节点上作为 DaemonSet 运行 DNS 缓存代
76
76
([default](https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt)
77
77
`nf_conntrack_udp_timeout` is 30 seconds)
78
78
-->
79
- * 从本地缓存代理到 kube-dns 服务的连接可以升级为 TCP 。
79
+ * 从本地缓存代理到 kube-dns 服务的连接可以升级为 TCP。
80
80
TCP conntrack 条目将在连接关闭时被删除,相反 UDP 条目必须超时
81
81
([ 默认] ( https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt )
82
82
` nf_conntrack_udp_timeout ` 是 30 秒)。
@@ -103,7 +103,7 @@ NodeLocal DNSCache 通过在集群节点上作为 DaemonSet 运行 DNS 缓存代
103
103
<!--
104
104
## Architecture Diagram
105
105
-->
106
- ## 架构图
106
+ ## 架构图 {#architecture-diagram}
107
107
108
108
<!--
109
109
This is the path followed by DNS Queries after NodeLocal DNSCache is enabled:
@@ -118,18 +118,16 @@ This is the path followed by DNS Queries after NodeLocal DNSCache is enabled:
118
118
<!--
119
119
## Configuration
120
120
-->
121
- ## 配置
121
+ ## 配置 {#configuration}
122
122
123
- <!--
124
123
{{< note >}}
124
+ <!--
125
125
The local listen IP address for NodeLocal DNSCache can be any address that
126
126
can be guaranteed to not collide with any existing IP in your cluster.
127
127
It's recommended to use an address with a local scope, for example,
128
128
from the 'link-local' range '169.254.0.0/16' for IPv4 or from the
129
129
'Unique Local Address' range in IPv6 'fd00::/8'.
130
- {{< /note >}}
131
130
-->
132
- {{< note >}}
133
131
NodeLocal DNSCache 的本地侦听 IP 地址可以是任何地址,只要该地址不和你的集群里现有的 IP 地址发生冲突。
134
132
推荐使用本地范围内的地址,例如,IPv4 链路本地区段 '169.254.0.0/16' 内的地址,
135
133
或者 IPv6 唯一本地地址区段 'fd00::/8' 内的地址。
@@ -145,7 +143,7 @@ This feature can be enabled using the following steps:
145
143
[`nodelocaldns.yaml`](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml)
146
144
and save it as `nodelocaldns.yaml.`
147
145
-->
148
- * 根据示例 [ ` nodelocaldns.yaml ` ] ( https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml )
146
+ * 根据示例 [ ` nodelocaldns.yaml ` ] ( https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml )
149
147
准备一个清单,把它保存为 ` nodelocaldns.yaml ` 。
150
148
151
149
<!--
@@ -156,8 +154,8 @@ This feature can be enabled using the following steps:
156
154
like this: "`health [__PILLAR__LOCAL__DNS__]:8080`"
157
155
-->
158
156
* 如果使用 IPv6,在使用 'IP: Port ' 格式的时候需要把 CoreDNS 配置文件里的所有 IPv6 地址用方括号包起来。
159
- 如果你使用上述的示例清单,需要把
160
- [ 配置行 L70] ( https://github.com/kubernetes/kubernetes/blob/b2ecd1b3a3192fbbe2b9e348e095326f51dc43dd/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml#L70 )
157
+ 如果你使用上述的示例清单,
158
+ 需要把 [ 配置行 L70] ( https://github.com/kubernetes/kubernetes/blob/b2ecd1b3a3192fbbe2b9e348e095326f51dc43dd/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml#L70 )
161
159
修改为: "` health [__PILLAR__LOCAL__DNS__]:8080 ` "。
162
160
163
161
<!--
@@ -209,7 +207,7 @@ This feature can be enabled using the following steps:
209
207
* If kube-proxy is running in IPVS mode:
210
208
211
209
` ` ` bash
212
- sed -i " s/__PILLAR__LOCAL__DNS__/$localdns /g; s/__PILLAR__DNS__DOMAIN__/$domain /g; s/, __PILLAR__DNS__SERVER__//g; s/__PILLAR__CLUSTER__DNS__/$kubedns /g" nodelocaldns.yaml
210
+ sed -i " s/__PILLAR__LOCAL__DNS__/$localdns /g; s/__PILLAR__DNS__DOMAIN__/$domain /g; s/__PILLAR__DNS__SERVER__//g; s/__PILLAR__CLUSTER__DNS__/$kubedns /g" nodelocaldns.yaml
213
211
` ` `
214
212
215
213
In this mode, the ` node-local-dns` pods listen only on ` < node-local-address> ` .
@@ -224,9 +222,8 @@ This feature can be enabled using the following steps:
224
222
` ` `
225
223
226
224
在此模式下,node-local-dns Pods 只会侦听 ` < node-local-address> ` 的地址。
227
- node-local-dns 接口不能绑定 kube-dns 的集群 IP 地址,因为 IPVS 负载均衡
228
- 使用的接口已经占用了该地址。
229
- node-local-dns Pods 会设置 ` __PILLAR__UPSTREAM__SERVERS__` 。
225
+ node-local-dns 接口不能绑定 kube-dns 的集群 IP 地址,因为 IPVS 负载均衡使用的接口已经占用了该地址。
226
+ node-local-dns Pod 会设置 ` __PILLAR__UPSTREAM__SERVERS__` 。
230
227
231
228
< ! --
232
229
* Run ` kubectl create -f nodelocaldns.yaml`
@@ -263,7 +260,7 @@ You should also revert any changes you made to the kubelet configuration.
263
260
< ! --
264
261
# # StubDomains and Upstream server Configuration
265
262
-->
266
- # # StubDomains 和上游服务器配置
263
+ # # StubDomains 和上游服务器配置 {#stubdomains-and-upstream-server-configuration}
267
264
268
265
< ! --
269
266
StubDomains and upstream servers specified in the ` kube-dns` ConfigMap in the ` kube-system` namespace
@@ -274,17 +271,16 @@ in the Corefile format. Some cloud providers might not allow modifying `node-loc
274
271
In those cases, the ` kube-dns` ConfigMap can be updated.
275
272
-->
276
273
` node-local-dns` Pod 能够自动读取 ` kube-system` 名字空间中 ` kube-dns` ConfigMap
277
- 中保存的 StubDomains 和上游服务器信息。ConfigMap 中的内容需要遵从
278
- [此示例](/zh-cn/docs/tasks/administer-cluster/dns-custom-nameservers/# example-1)
279
- 中所给的格式。
274
+ 中保存的 StubDomains 和上游服务器信息。ConfigMap
275
+ 中的内容需要遵从[此示例](/zh-cn/docs/tasks/administer-cluster/dns-custom-nameservers/# example-1)中所给的格式。
280
276
` node-local-dns` ConfigMap 也可被直接修改,使用 Corefile 格式设置 stubDomain 配置。
281
277
某些云厂商可能不允许直接修改 ` node-local-dns` ConfigMap 的内容。
282
278
在这种情况下,可以更新 ` kube-dns` ConfigMap。
283
279
284
280
< ! --
285
281
# # Setting memory limits
286
282
-->
287
- # # 设置内存限制
283
+ # # 设置内存限制 {#setting-memory-limits}
288
284
289
285
< ! --
290
286
The ` node-local-dns` Pods use memory for storing cache entries and processing queries.
0 commit comments