管理BlazingDNS组件

BlazingDNS基于内核可编程技术提供DNS缓存加速能力,可以显著提升DNS服务发现的稳定性和性能。本文介绍如何管理BlazingDNS组件。

前提条件

注意事项

目前暂不支持集群运行中的存量Pod开启DNS缓存加速。

使用限制

  • 目前仅支持在ACK Serverless集群安装,提升您运行在弹性容器实例上业务的DNS解析性能。

  • BlazingDNS功能上存在以下限制:

    • 该组件仅支持常见的A/AAAA/CNAME记录类型的DNS查询。

    • 该组件仅支持基于UDP协议的DNS查询。

    • 该组件仅支持响应报文小于等于256字节的DNS查询。

BlazingDNS简介

BlazingDNS是一款DNS缓存软件,基于内核可编程技术实现,具有无侵入、低开销、高性能等特点。业务应用容器Pod无需修改DNSConfig中DNS服务器指向即可获得DNS加速效果。

如下图所示,开启BlazingDNS后,ECI实例中发起的DNS查询请求即可被缓存加速,您无需进行额外操作。

image

开启BlazingDNS

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理

  3. 组件管理页面,单击网络页签,找到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。

  1. 执行如下命令,查看所有运行中的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"
  2. 查看返回结果是否为空。

    • 如果返回结果非空,请参考以下步骤先清理所有依赖BlazingDNS的Pod,直到所有Pod不再依赖BlazingDNS,然后再卸载组件。

      1. 登录容器服务管理控制台,在左侧导航栏选择集群

      2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择配置管理 > 配置项

      3. 配置项页面选择kube-system命名空间,然后单击blazing-dns所在行的编辑,在弹出的对话框中修改config字段的值为enabled: false

      4. 删除重建上述命令中输出的所有Pod,直到运行命令后返回结果为空。

      5. 组件管理页面,单击网络页签,找到BlazingDNS组件,单击BlazingDNS组件右侧的卸载,然后根据页面提示完成组件卸载。

    • 如果返回结果为空,在组件管理页面,单击网络页签,找到BlazingDNS组件,单击BlazingDNS组件右侧的卸载,然后根据页面提示完成组件卸载。