CoreDNS NodeLocal DNSCache导致的无法自定义hosts
Apr 11, 2024
好久不写日志,捡起来随便写写吧。
近日接手维护了一个k8s集群,需要在集群内部使用coredns内置的hosts插件增加一个hosts解析。但是新增之后却测试不生效,查了一圈有了这篇文章。
一. 具体问题表现:
- hosts配置增加无反应, 切nsloook发现dns转发到了169.254.20.10
1
2
3
4hosts {
10.0.40.40 fee-sit.domain.com
fallthrough
}
二、具体处理方案:
- 将NodeLocalDNS的dns解析转发到coredns的service, 操作如下:
1
2
3
4
5
6
7
8
9
10
11
12kubectl 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)来说, 增加一些没有显著提升性能的组件,会导致出现更多复杂问题需要处理, 得不偿失。