gpt4 book ai didi

kubernetes - 在 k3s 上自定义 coredns 以将域直接指向集群负载均衡器

转载 作者:行者123 更新时间:2023-12-05 06:06:31 27 4
gpt4 key购买 nike

我正在尝试向 coredns 添加重写以将域指向集群负载均衡器(以便将该域的请求重定向回集群)。我似乎找不到影响 k3s 的 coredns 配置的方法。有办法改变吗?

(这是为了解决 https://github.com/jetstack/cert-manager/issues/1292#issuecomment-757283796,其中 pod 尝试通过指向路由器 IP 的 DNS 名称联系集群中的另一个服务,但由于 NAT 的工作方式而失败。)

最佳答案

可以配置 CoreDNS 通过添加 rewrite 规则将一个域映射到另一个域。假设您有域 example.com 并且您希望该域指向 google.com 域。

要在 CoreDNS 中执行此操作,您可以使用 rewrite 插件。

CoreDNS 的配置存储在kube-system 命名空间的coredns ConfigMap 中。您可以使用以下方式对其进行编辑:

root@kmaster:~# kubectl edit cm coredns -n kube-system

只需添加一个rewrite 规则,如下例所示:

apiVersion: v1
data:
Corefile: |
.:53 {
errors
health
rewrite name example.com google.com # mapping example.com to google.com
ready
...

接下来您需要重新加载 CoreDNS,以使用新配置。您可以删除 coredns Pod(coredns 部署为 Deployment,因此将创建新的 Pod)或者您可以向它发送一个 SIGUSR1 以告诉它优雅地重新加载。

最后我们可以检查它是如何工作的:

root@kmaster:~# kubectl run -it --rm --image=infoblox/dnstools:latest dnstools
dnstools# host -t A google.com
google.com has address 172.217.21.238
dnstools# host -t A example.com
example.com has address 172.217.21.238

您可以在 Coredns rewrite documentation 中找到有关重写插件的更多信息.

关于kubernetes - 在 k3s 上自定义 coredns 以将域直接指向集群负载均衡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65727962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com