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组件右侧的卸载,然后根据页面提示完成组件卸载。