CoreDNS域名解析
插件介绍
CoreDNS是一款通过链式插件的方式给Kubernetes提供DNS解析服务的DNS服务器,为Kubernetes社区推荐的DNS服务器解决方案。
字段说明
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
basic |
否 |
object |
插件基础配置参数,无需用户指定。 |
flavor |
是 |
表2 object |
插件规格参数 |
custom |
是 |
表3 object |
插件自定义参数 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
replicas |
是 |
int |
实例数,默认为:2 |
resources |
是 |
Array of resources object |
容器资源(CPU、内存)配额。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
servers |
否 |
object |
servers配置 |
stub_domains |
否 |
Map<String>[]string |
存根域配置 |
multiAZEnable |
否 |
bool |
插件中deployment组件多可用部署是否采用强制模式,默认:false。强制模式下插件Deployment实例强制调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将无法全部运行。若multiAZEnable与multiAZBalance配置也同时为true,则以multiAZBalance为准使用多可用部署均分模式。 |
multiAZBalance |
否 |
bool |
插件中deployment组件多可用部署是否采用均分模式,默认:false。插件Deployment实例均匀调度到当前集群下各可用区,增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署;均分模式限制不同可用区间插件实例数相差不超过1,单个可用区资源不足会导致后续其他实例无法调度。 |
tolerations |
否 |
Array of 表5 |
污点容忍配置。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
limitsCpu |
是 |
String |
CPU大小限制,单位:m |
limitsMem |
是 |
String |
内存大小限制,单位:Mi |
name |
是 |
String |
插件名称,固定为:coredns |
requestsCpu |
是 |
String |
申请的CPU大小,单位:m |
requestsMem |
是 |
String |
申请的内存大小,单位:Mi |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
否 |
String |
污点键 |
effect |
否 |
String |
污点策略 |
operator |
否 |
String |
操作符 |
tolerationSeconds |
否 |
Int |
容忍时间窗 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
port |
否 |
Int |
域端口配置,默认5353。 |
zones |
否 |
Array of 表8 |
域配置。 |
plugins |
否 |
Array of 表7 |
plugin插件配置。 |
请求示例
{ "kind": "Addon", "apiVersion": "v3", "metadata": { "annotations": { "addon.install/type": "install" } }, "spec": { "clusterID": "2292498e-******-0255ac1001ba", "version": "1.29.2", "addonTemplateName": "coredns", "values": { "basic": { "basickey":"val" }, "flavor": { "replicas": 2, "resources": [{ "limitsCpu": "2000m", "limitsMem": "2000Mi", "name": "coredns", "requestsCpu": "2000m", "requestsMem": "2000Mi" }] }, "custom": { "multiAZBalance": false, "multiAZEnabled": false, "node_match_expressions": [], "servers": [{ "plugins": [{ "name": "bind", "parameters": "{$POD_IP}" }, { "configBlock": "servfail 5s", "name": "cache", "parameters": 30 }, { "name": "errors" }, { "name": "health", "parameters": "{$POD_IP}:8080" }, { "name": "ready", "parameters": "{$POD_IP}:8081" }, { "configBlock": "pods insecure\nfallthrough in-addr.arpa ip6.arpa", "name": "kubernetes", "parameters": "cluster.local in-addr.arpa ip6.arpa" }, { "name": "loadbalance", "parameters": "round_robin" }, { "name": "prometheus", "parameters": "{$POD_IP}:9153" }, { "configBlock": "policy random", "name": "forward", "parameters": ". /etc/resolv.conf" }, { "name": "reload" }], "port": 5353, "zones": [{ "zone": "." }] }], "stub_domains": { }, "tolerations": [{ "key": "node.kubernetes.io/not-ready", "operator": "Exists", "effect": "NoExecute", "tolerationSeconds": 60 }, { "key": "node.kubernetes.io/unreachable", "operator": "Exists", "effect": "NoExecute", "tolerationSeconds": 60 }] } } } }