配置 NodeLocal DNSCache
从 ACP 4.5 开始,Alauda Build of NodeLocal DNSCache 更名为 Alauda Container Platform Node DNS Cache。从 Customer Portal 下载插件时,请搜索 Alauda Container Platform Node DNS Cache。重命名前发布的插件包上传后,在平台中仍显示为 Alauda Build of NodeLocal DNSCache。
概述
NodeLocal DNSCache 是一种集群插件,通过在集群节点上运行 DNS 缓存代理来提升集群 DNS 性能。该插件通过在每个节点上本地缓存 DNS 响应,降低 DNS 查询延迟并提升集群稳定性,同时减轻中央 DNS 服务的负载。
主要功能
- 本地 DNS 缓存:在每个节点上本地缓存 DNS 响应,以降低查询延迟
- 提升性能:显著缩短应用的 DNS 查找时间
重要说明
部署注意事项:
-
Kube-OVN Underlay 模式:该插件不支持在 Kube-OVN Underlay 模式下部署。若进行部署,可能会导致 DNS 查询失败。
-
重启 Kubelet:部署该插件会导致 kubelet 重启。
-
需要重启 Pod:插件成功部署后,不会影响正在运行的 Pod,只会对新创建的 Pod 生效。当 CNI 为 Kube-OVN 时,需要手动将参数 "--node-local-dns-ip=(IP address of the local DNS cache server)" 添加到 kube-ovn-controller。
-
NetworkPolicy 配置:如果集群中配置了 NetworkPolicy,则需要在 networkPolicy 中额外允许节点 CIDR 和 nodeLocalDNSIP 的入站和出站流量,以确保正常通信。
-
通过重建升级集群:如果通过重建节点(重新配置)升级集群,kubelet 配置变更将会丢失。若要使 NodeLocal DNS 配置在升级后仍然保留,需要在集群模板的以下三个位置,将
--cluster-dns参数添加到kubeletExtraArgs中:KubeadmControlPlane→initConfiguration→nodeRegistration→kubeletExtraArgsKubeadmControlPlane→joinConfiguration→nodeRegistration→kubeletExtraArgsKubeadmConfigTemplate→template→spec→joinConfiguration→nodeRegistration→kubeletExtraArgs
将以下参数添加到上述每个
kubeletExtraArgs部分:
4.2.x 升级说明
将此插件从低于 4.2.0 的版本(不包括 4.2.0 本身)升级到 4.2.x 时,由于 ResourcePatch 兼容性问题,需要执行以下步骤:
升级前:
- 记录 kube-ovn-controller ResourcePatch 配置中的
--node-local-dns-ip参数值 - 删除针对
deploy/kube-ovn-controller资源的 ResourcePatch
升级后:
- 手动将记录的
--node-local-dns-ip参数添加回 kube-ovn-controller 配置
注意:此兼容性问题已在 4.3 及更高版本中修复,因此升级到 4.3+ 时无需手动干预。
安装
通过 Marketplace 安装
-
导航至 管理员 > Marketplace > 集群插件。
-
在插件列表中搜索 "Alauda Container Platform Node DNS Cache"(对于重命名之前发布的软件包,显示为 "Alauda Build of NodeLocal DNSCache")。
-
点击 安装,打开安装配置页面。
-
配置所需参数:
-
查看部署说明,并确保您的环境满足要求。
-
点击 安装 完成安装。
-
等待插件状态变为 "就绪"。
工作原理
架构
配置
网络策略配置
重要:如果您的集群启用了 NetworkPolicy,则必须配置适当的规则,以允许 DNS 流量访问 NodeLocal DNSCache。没有这些规则,Pod 可能无法解析 DNS 查询。
使用 NetworkPolicy 时,请确保允许以下 DNS 流量: