Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
本页概述了 Kubernetes 中的 NodeLocal DNSCache 功能。
你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 如果你还没有集群,你可以通过 Minikube 构建一 个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:
要获知版本信息,请输入kubectl version
.
NodeLocal DNSCache 通过在集群节点上作为 DaemonSet 运行 dns 缓存代理来提高集群 DNS 性能。 在当今的体系结构中,处于 ClusterFirst DNS 模式的 Pod 可以连接到 kube-dns serviceIP 进行 DNS 查询。 通过 kube-proxy 添加的 iptables 规则将其转换为 kube-dns/CoreDNS 端点。 借助这种新架构,Pods 将可以访问在同一节点上运行的 dns 缓存代理,从而避免了 iptables DNAT 规则和连接跟踪。 本地缓存代理将查询 kube-dns 服务以获取集群主机名的缓存缺失(默认为 cluster.local 后缀)。
nf_conntrack_udp_timeout
是 30 秒)启用 NodeLocal DNSCache 之后,这是 DNS 查询所遵循的路径:
可以使用以下命令启用此功能:
KUBE_ENABLE_NODELOCAL_DNS=true go run hack/e2e.go -v --up
这适用于在 GCE 上创建 e2e 集群。 在所有其他环境上,以下步骤将设置 NodeLocal DNSCache :
kubectl create -f
命令应用类似于这个的 Yaml 。启用后,node-local-dns Pods 将在每个集群节点上的 kube-system 名称空间中运行。 此 Pod 在缓存模式下运行 CoreDNS ,因此每个节点都可以使用不同插件公开的所有 CoreDNS 指标。
可以在任何 K8s 版本中使用上面指定的 yaml 应用该插件。 功能支持如下所述:
k8s 版本 | 功能支持 |
---|---|
1.15 | Beta(默认情况下未启用) |
1.13 | Alpha(默认情况下未启用) |