kubernetes 使用自定义kube-dns配置Map时,Pod似乎没有接收上游dns或存根域

blmhpbnm  于 2023-04-20  发布在  Kubernetes
关注(0)|答案(2)|浏览(121)

我在kube-system NS中设置了一个名为kube-dns的配置Map,其中包含一些自定义的上游DNS条目(3 x),但是当我通过简单的部署调度它们时,我的容器/pod没有在它们的resolv.conf文件中继承这些自定义DNS条目。
我在kube-dns pod中的日志似乎没有指向配置Map的名称(它看起来像一个空字符串)。这可能是问题所在吗?
添加自定义配置Map后,我确实删除了kube-dns pod,并允许现有的kube-dns部署重新创建pod(有2个kube-dns pod被终止,并重新创建)。
我使用这个指南来设置我的配置Map(我有一篇关于1.6引入的功能的博客文章):
https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#configmap-options
http://blog.kubernetes.io/2017/04/configuring-private-dns-zones-upstream-nameservers-kubernetes.html
下面是我的配置图:

apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-dns
  namespace: kube-system
data:
  stubDomains: |
    {"myinternaldomainhere.net": ["10.254.131.155"]}
  upstreamNameservers: |
    ["10.254.131.155", "8.8.8.8", "8.8.4.4"]

是否需要在其他地方指定kube-dns的部署引用配置Map的名称?在pod日志中,我可以看到配置Map名称的标志似乎是一个空字符串。
我在删除旧pod后查看的新kubedns pod的日志说(注意第5行是我看到空字符串引用的地方):

I1110 16:35:35.685518       1 dns.go:48] version: 1.14.4-2-g5584e04
I1110 16:35:35.686074       1 server.go:70] Using configuration read from directory: /kube-dns-config with period 10s
I1110 16:35:35.686136       1 server.go:113] FLAG: --alsologtostderr="false"
I1110 16:35:35.686148       1 server.go:113] FLAG: --config-dir="/kube-dns-config"
I1110 16:35:35.686152       1 server.go:113] FLAG: --config-map=""
I1110 16:35:35.686155       1 server.go:113] FLAG: --config-map-namespace="kube-system"
I1110 16:35:35.686158       1 server.go:113] FLAG: --config-period="10s"
I1110 16:35:35.686161       1 server.go:113] FLAG: --dns-bind-address="0.0.0.0"
I1110 16:35:35.686164       1 server.go:113] FLAG: --dns-port="10053"
I1110 16:35:35.686192       1 server.go:113] FLAG: --domain="cluster.local."
I1110 16:35:35.686196       1 server.go:113] FLAG: --federations=""
I1110 16:35:35.686200       1 server.go:113] FLAG: --healthz-port="8081"
I1110 16:35:35.686202       1 server.go:113] FLAG: --initial-sync-timeout="1m0s"
I1110 16:35:35.686205       1 server.go:113] FLAG: --kube-master-url=""
I1110 16:35:35.686208       1 server.go:113] FLAG: --kubecfg-file=""
I1110 16:35:35.686211       1 server.go:113] FLAG: --log-backtrace-at=":0"
I1110 16:35:35.686236       1 server.go:113] FLAG: --log-dir=""
I1110 16:35:35.686250       1 server.go:113] FLAG: --log-flush-frequency="5s"
I1110 16:35:35.686257       1 server.go:113] FLAG: --logtostderr="true"
I1110 16:35:35.686260       1 server.go:113] FLAG: --nameservers=""
I1110 16:35:35.686262       1 server.go:113] FLAG: --stderrthreshold="2"
I1110 16:35:35.686275       1 server.go:113] FLAG: --v="2"
I1110 16:35:35.686281       1 server.go:113] FLAG: --version="false"
I1110 16:35:35.686286       1 server.go:113] FLAG: --vmodule=""
I1110 16:35:35.686459       1 server.go:176] Starting SkyDNS server (0.0.0.0:10053)
I1110 16:35:35.686713       1 server.go:198] Skydns metrics enabled (/metrics:10055)
I1110 16:35:35.686724       1 dns.go:147] Starting endpointsController
I1110 16:35:35.686728       1 dns.go:150] Starting serviceController
I1110 16:35:35.686924       1 logs.go:41] skydns: ready for queries on cluster.local. for tcp://0.0.0.0:10053 [rcache 0]
I1110 16:35:35.686937       1 logs.go:41] skydns: ready for queries on cluster.local. for udp://0.0.0.0:10053 [rcache 0]
I1110 16:35:36.187196       1 dns.go:171] Initialized services and endpoints from apiserver
I1110 16:35:36.187215       1 server.go:129] Setting up Healthz Handler (/readiness)
I1110 16:35:36.187221       1 server.go:134] Setting up cache handler (/cache)
I1110 16:35:36.187226       1 server.go:120] Status HTTP port 8081

我正在测试的pod设置为使用ClusterFirst DNS类型,这就是文档中所说的我需要的工作。
任何关于在哪里寻找这个问题的建议或指针都是非常受欢迎的。

toiithl6

toiithl61#

我也读了那些博客/教程,他们似乎没有提到你需要在配置图上运行kubectl apply -f your-dns-configmap.yaml
我会运行以下代码:kubectl get cm --namespace="kube-system"来查看你的配置Map是否真的在那里。它应该以kube-dns的名称出现。
我遇到了另一个问题,你的帖子启发我检查kube-dns日志,在我的日志顶部它说:1 server.go:66] Using configuration read from ConfigMap: kube-system:kube-dns虽然你的日志是说Using configuration read from directory: /kube-dns-config
所以看起来你的kube-dns肯定找不到配置Map,并且默认为kube-dns容器文件系统中的一些配置。我肯定会尝试运行apply and get cm命令,然后再试一次看看会发生什么。

cwtwac6a

cwtwac6a2#

mkdir -p ~/.minikube/files/etc
echo nameserver 8.8.8.8 > ~/.minikube/files/etc/resolv.conf
minikube stop
minikube start

友情链接:https://rpi4cluster.com/awx/dns/

相关问题