好久不写日志,捡起来随便写写吧。

近日接手维护了一个k8s集群,需要在集群内部使用coredns内置的hosts插件增加一个hosts解析。但是新增之后却测试不生效,查了一圈有了这篇文章。

一. 具体问题表现:

  • hosts配置增加无反应, 切nsloook发现dns转发到了169.254.20.10
    1
    2
    3
    4
    hosts {
    10.0.40.40 fee-sit.domain.com
    fallthrough
    }

二、具体处理方案:

  • 将NodeLocalDNS的dns解析转发到coredns的service, 操作如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    kubectl edit cm node-local-dns -n kube-system
    .:53 {
    errors
    cache 30
    reload
    loop
    bind 169.254.20.10 10.96.0.10
    forward . __PILLAR__CLUSTER__DNS__ {
    force_tcp
    }
    prometheus :9253
    }
    __PILLAR__CLUSTER__DNS__: 集群coredns service地址

三、结语

  • k8s这套东西非常复杂,对于一些小集群(低于20个节点,少于2000个pod)来说, 增加一些没有显著提升性能的组件,会导致出现更多复杂问题需要处理, 得不偿失。

参考: