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
}]
}
}
}
}