更新时间:2024-11-06 GMT+08:00

节点本地域名解析加速

插件介绍

节点本地域名解析加速(node-local-dns)是基于社区NodeLocal DNSCache提供的插件,通过在集群节点上作为守护程序集运行DNS缓存代理,提高集群DNS性能。

字段说明

表1 参数描述

参数

是否必选

参数类型

描述

basic

object

插件基础配置参数,无需指定。

flavor

表2 object

插件规格参数

custom

表3 object

插件自定义参数

表2 flavor

参数

是否必选

参数类型

描述

replicas

String

插件中admission-controller组件实例数,默认为:2

resources

Array resources object

容器资源(CPU、内存)配额。

表3 custom

参数

是否必选

参数类型

描述

enable_dnsconfig_admission

bool

开启DNSConfig自动注入功能,默认:true。启用后,会创建DNSConfig动态注入控制器,该控制器基于Admission Webhook机制拦截目标命名空间(即命名空间包含标签node-localdns-injection=enabled)下Pod的创建请求,自动配置使用DNS缓存的Pod dnsConfig字段。未开启DNSConfig自动注入或Pod属于非目标命名空间,则需要手动给Pod配置DNSConfig。

enable_namespace_admission

bool

为已创建的命名空间添加node-local-dns-injection=enabled标签,默认:true。命名空间添加标签后会识别命名空间的创建请求并自动添加标签,这些操作的目标不包含系统内置的命名空间(如kube-system)。

multiAZEnable

bool

插件中deployment组件多可用部署是否采用强制模式,默认:false。强制模式下插件Deployment实例强制调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将无法全部运行。若multiAZEnable与multiAZBalance配置也同时为true,则以multiAZBalance为准使用多可用部署均分模式。

multiAZBalance

bool

插件中deployment组件多可用部署是否采用均分模式,默认:false。插件Deployment实例均匀调度到当前集群下各可用区,增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署;均分模式限制不同可用区间插件实例数相差不超过1,单个可用区资源不足会导致后续其他实例无法调度。

tolerations

Array of 表5

admission-controller组件污点容忍配置

表4 resources字段数据结构说明

参数

是否必选

参数类型

描述

limitsCpu

String

CPU大小限制,单位:m

limitsMem

String

内存大小限制,单位:Mi

name

String

插件名称,固定为:node-local-dns-admission-controller或node-local-dns-cache

requestsCpu

String

申请的CPU大小,单位:m

requestsMem

String

申请的内存大小,单位:Mi

表5 tolerations污点

参数

是否必选

参数类型

描述

key

String

污点键

effect

String

污点策略

operator

String

操作符

tolerationSeconds

Int

容忍时间窗

请求示例

{
	"kind": "Addon",
	"apiVersion": "v3",
	"metadata": {
		"annotations": {
			"addon.install/type": "install"
		}
	},
	"spec": {
		"clusterID": "2292498e-d169-**********-0255ac1001ba",
		"version": "1.6.2",
		"addonTemplateName": "node-local-dns",
		"values": {
                        "basic": {
				"basickey":"val"
			},
			"flavor": {
				"replicas": 2,
				"resources": [{
					"limitsCpu": "250m",
					"limitsMem": "512Mi",
					"name": "node-local-dns-admission-controller",
					"requestsCpu": "250m",
					"requestsMem": "512Mi"
				},
				{
					"limitsCpu": "500m",
					"limitsMem": "512Mi",
					"name": "node-local-dns-cache",
					"requestsCpu": "25m",
					"requestsMem": "5Mi"
				}]
			},
			"custom": {
				"enable_dnsconfig_admission": true,
				"enable_namespace_admission": true,
				"multiAZBalance": false,
				"multiAZEnabled": false,
				"node_match_expressions": [],
				"tolerations": [{
					"key": "node.kubernetes.io/not-ready",
					"operator": "Exists",
					"effect": "NoExecute",
					"tolerationSeconds": 60
				},
				{
					"key": "node.kubernetes.io/unreachable",
					"operator": "Exists",
					"effect": "NoExecute",
					"tolerationSeconds": 60
				}]
			}
		}
	}
}