跳到主要内容

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 变化后仍会访问旧地址。