我有一个在 Kubernetes 集群中运行的应用程序,它正在访问公共 API URL,例如api.server123.com
。该应用程序在其代码本身中访问它
/etc/host
我想将该公共 UZRL 解析为内部 IP,就像我们在ie 条目中所做的那样,例如1.2.3.4 api.server123.com
该 IP 属于我们的内部服务器之一。这是为了让我看到发送的有效负载和一些内部检查。
我可以通过 CoreDNS 做到这一点吗?
我这样做了,但似乎不起作用。
Corefile: |-
.:53 {
errors
health
kubernetes cluster.local. in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
hosts {
1.2.3.4 api.server123.com
fallthrough
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
reload
loadbalance
}
这是在 Kubernetes 中将公共 URL 解析为内部 IP 的正确方法吗?
答案1
我建议你使用转发插件用于 Corefile 配置。根据Kubernetes.io:
forward:任何不在 Kubernetes 集群域内的查询都将被转发到预定义的解析器(/etc/resolv.conf)。
您可以在以下位置找到有用的示例coredns.io