gpt4 book ai didi

kubernetes - 如何更改使用 kubeadm 部署的 kubernetes 1.9 上的 cluster.local 默认域?

转载 作者:行者123 更新时间:2023-12-02 11:28:39 24 4
gpt4 key购买 nike

我想通过向 DNS 服务器添加 stub 区域来解析来自 Kubernetes 集群外部的 kube-dns 名称。这需要将 cluster.local 域更改为适合我的 DNS 命名空间的内容。
集群 DNS 与 cluster.local 一起工作正常。要更改域,我已将/etc/systemd/system/kubelet.service.d/10-kubeadm.conf 上的 KUBELET_DNS_ARGS 行修改为:

Environment="KUBELET_DNS_ARGS=--cluster-dns=x.y.z --cluster-domain=cluster.mydomain.local --resolv-conf=/etc/resolv.conf.kubernetes"
重启后 kubelet 外部名称可解析但 kubernetes 名称解析失败。
我可以看到 kube-dns 仍在运行:
/kube-dns --domain=cluster.local. --dns-port=10053 --config-dir=/kube-dns-config --v=2
我能够找到 cluster.local 的唯一地方是在 pods yaml 配置中,它显示:
  containers:
- args:
- --domain=cluster.local.
- --dns-port=10053
- --config-dir=/kube-dns-config
- --v=2
修改 yaml 并使用重新创建 pod 后
kubectl replace --force -f kube-dns.yaml
我仍然看到 kube-dns 开始使用 --domain=cluster.local。
我错过了什么?

最佳答案

我在将基于微服务的应用程序移植到 Kubernetes 时遇到了类似的问题。将内部 DNS 区域更改为 cluster.local 将是一项相当复杂的任务,我们并不真正想要处理。

在我们的例子中,我们 switched from KubeDNS to CoreDNS ,并简单地启用 coreDNS rewrite plugin翻译我们的our.internal.domainourNamespace.svc.cluster.local .

执行此操作后,我们的 CoreDNS 配置映射的核心文件部分如下所示:

data:
Corefile: |
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
rewrite name substring our.internal.domain ourNamespace.svc.cluster.local
proxy . /etc/resolv.conf
cache 30

}

这使我们的 kubernetes 服务能够同时响应默认 DNS 区域和我们自己的区域。

关于kubernetes - 如何更改使用 kubeadm 部署的 kubernetes 1.9 上的 cluster.local 默认域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48326773/

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