BlazingDNS基于内核可编程技术提供DNS缓存加速能力,可以显著提升DNS服务发现的稳定性和性能。本文介绍如何管理BlazingDNS组件。
前提条件
- 已为ACK Serverless集群安装ACK Virtual Node组件,且该组件版本已升级至2.10.0-rc.10及以上。具体操作,请参见管理组件。 
注意事项
目前暂不支持集群运行中的存量Pod开启DNS缓存加速。
使用限制
- 目前仅支持在ACK Serverless集群安装,提升您运行在弹性容器实例上业务的DNS解析性能。 
- BlazingDNS功能上存在以下限制: - 该组件仅支持常见的A/AAAA/CNAME记录类型的DNS查询。 
- 该组件仅支持基于UDP协议的DNS查询。 
- 该组件仅支持响应报文小于等于256字节的DNS查询。 
 
BlazingDNS简介
BlazingDNS是一款DNS缓存软件,基于内核可编程技术实现,具有无侵入、低开销、高性能等特点。业务应用容器Pod无需修改DNSConfig中DNS服务器指向即可获得DNS加速效果。
如下图所示,开启BlazingDNS后,ECI实例中发起的DNS查询请求即可被缓存加速,您无需进行额外操作。
开启BlazingDNS
- 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在组件管理页面,单击网络页签,找到BlazingDNS组件,单击BlazingDNS组件右侧的安装,然后根据页面提示完成组件安装。 
- 安装BlazingDNS组件后,会在 - kube-system命名空间中创建名为- blazing-dns的配置文件,请勿对其进行修改删除。
- 安装BlazingDNS组件后,新创建的ECI Pod会被默认开启DNS缓存加速。您可以通过检查Pod Annotations中 - k8s.aliyun.com/dns-cache-enable布尔值的情况来确认Pod是否成功开启缓存加速。
相关操作
升级BlazingDNS
在组件管理页面,单击网络页签,找到BlazingDNS组件,单击BlazingDNS组件右侧的升级,然后根据页面提示完成组件升级。升级BlazingDNS可以获得最佳DNS缓存加速效果。
卸载BlazingDNS
卸载BlazingDNS组件前,您必须确保所有运行中的Pod没有开启BlazingDNS。
- 执行如下命令,查看所有运行中的Pod是否开启BlazingDNS。 - 查找当前集群内开启BlazingDNS的Pod名称。 - kubectl get pod -o=jsonpath='{.items[?(@.metadata.annotations.k8s\.aliyun\.com/dns-cache-enable=="true")].metadata.name}' -A
- 如果当前节点已经安装jq,可以使用以下命令同时输出Namespace和Pod名称。 - kubectl get pod -o=jsonpath='{.items[?(@.metadata.annotations.k8s\.aliyun\.com/dns-cache-enable=="true")]}' | jq -rc ".metadata.namespace,.metadata.name"
 
- 查看返回结果是否为空。 - 如果返回结果非空,请参考以下步骤先清理所有依赖BlazingDNS的Pod,直到所有Pod不再依赖BlazingDNS,然后再卸载组件。 - 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在配置项页面选择 - kube-system命名空间,然后单击- blazing-dns所在行的编辑,在弹出的对话框中修改- config字段的值为- enabled: false。
- 删除重建上述命令中输出的所有Pod,直到运行命令后返回结果为空。 
- 在组件管理页面,单击网络页签,找到BlazingDNS组件,单击BlazingDNS组件右侧的卸载,然后根据页面提示完成组件卸载。 
 
- 如果返回结果为空,在组件管理页面,单击网络页签,找到BlazingDNS组件,单击BlazingDNS组件右侧的卸载,然后根据页面提示完成组件卸载。