Pod内部指定域名对应IP
1.故障现象
用户在配置中心配置了第三方服务(比如邮件服务器、AD集成等),访问方式是域名,但是一直访问报错。
2.故障根因
K3s 集群内 DNS 通常由 CoreDNS 负责,CoreDNS 会将外部域名解析请求转发到上游 DNS;如果上游 DNS 配置异常、不可达,或无法解析目标域名,就会导致 Pod 内域名解析失败。
3.解决方案
ONES增加hostAliases配置项,批量修改相关pod的/etc/hosts文件,增加IP 域名固定映射,绕过DNS 解析。
#进入操作容器
ones-ai-k8s.sh
#编辑文件添加解析
vim config/private.yaml
#在文件最后添加如下内容,修改为需要解析的IP和域名
hostAliases: |
- ip: "10.10.10.10"
hostnames:
- "test.com.cn"
#保存后执行
make setup-ones
注意1: 该操作会重启相关POD,通常影响约 1 分钟,具体以环境规模和 Pod 重启时间为准,请在非高峰期执行。
注意2: 如果第三方服务 IP 会变化,不建议长期使用 hostAliases,否则 IP 变化后仍会访问旧地址。