问题标签 [kube-dns]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2460 浏览

kubernetes - kube-dns 错误:来自意外来源的回复

我对 kube-dns 有一个奇怪的错误。

环境:集群有一个主节点和几个节点,部署在 AWS 上,带有 kops。Kubernetes 版本 1.8.4。

问题是我的 pod 中的 DNS 名称解析(集群内部或外部名称)存在缺陷。经过故障排除后,我了解到只有在特定节点上安排 pod 时才会出现问题,该节点是 kube-dns pod 的副本之一正在运行的节点。

这些是我的 kube-dns pod:

如果我运行一个测试 POD 强制它运行node02一切似乎都很好。我可以毫无问题地解析任何(有效的)DNS 名称。

如果我在名称解析上运行相同的测试 PODnode01是不稳定的:有时它会失败(大约 50% 的时间)并出现以下错误

其余时间它完美无瑕:

/etc/resolv.conf正确指向kube-dns服务的 IP 地址:

显然,node01仅当服务将请求转发到在其自身kube-dns上运行的 pod 实例时,node01才会触发错误。

我尝试重新启动 kube-proxy,node01但问题仍然存在。

我敢打赌,重新启动/重新创建node01会使问题消失,但我需要确保这个问题不会再次发生。

有人知道发生了什么吗?

0 投票
1 回答
1292 浏览

kubernetes - 使 Kubernetes 集群中的 pod DNS 名称可解析

设置

名为 frontend 的部署的 pod 通过名为 frontend 的服务公开。

问题

通过busybox查询服务前端的DNS名称返回服务IP地址。通过 busybox 查询 pod frontend-b48b88789-dcxs6 的 DNS 名称无法解析。


问题

我必须做什么才能通过 Kubernetes 集群 DNS 系统解析 pod?

我一直在寻找答案的来源

0 投票
2 回答
2488 浏览

kubernetes - kube-dns 找不到 api-server

我正在 GKE 上设置 kubernetes,如 Kelsey Hightowers https://github.com/kelseyhightower/kubernetes-the-hard-way/中所述

一切正常,除了设置 DNS ClusterAddon https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/12-dns-addon.md

当我像这样启动 kube-dns 时:

kubectl create -f https://storage.googleapis.com/kubernetes-the-hard-way/kube-dns.yaml

我确实得到了预期的输出:

但是检查 pod 的状态和 kube-dns 容器的输出我看到了错误:

并在容器日志中:

容器日志中的 URL https://10.32.0.1:443似乎是错误的,但是我找不到可以指定不同 URL 的任何地方,也找不到在配置文件https://中设置此 URL 的位置storage.googleapis.com/kubernetes-the-hard-way/kube-dns.yaml

0 投票
6 回答
10921 浏览

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

我想通过向我的 DNS 服务器添加一个存根区域来从 Kubernetes 集群外部解析 kube-dns 名称。这需要将 cluster.local 域更改为适合我的 DNS 命名空间的内容。

集群 DNS 与 cluster.local 一起工作正常。要更改域,我已将 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 上的 KUBELET_DNS_ARGS 行修改为:

重启 kubelet 后,外部名称是可解析的,但 kubernetes 名称解析失败。

我可以看到 kube-dns 仍在运行:

我唯一能找到 cluster.local 的地方是在 pods yaml 配置中,内容如下:

修改 yaml 并使用重新创建 pod 后

我仍然看到 kube-dns 从 --domain=cluster.local 开始。

我错过了什么?

0 投票
1 回答
563 浏览

linux - 无法使用 heapster 和 kube-dns 解决 Kubernetes 上的 monitoring-influxdb

我正在尝试让 Heapster 在我的 Kubernetes 集群上工作。我正在使用 Kube-DNS 进行 DNS 解析。

我的 Kube-DNS 似乎设置正确:

kubectl 描述 pod kube-dns-v20-z2dd2 -n kube-system

kubectl 描述 svc kube-dns -n kube-system

kubectl 描述 ep kube-dns -n kube-system

kubectl exec -it busybox1 -- nslookup kubernetes.default

但是,如果我试图在busybox容器(在kube-system命名空间之外)上解析http://monitoring-influxdb,则无法解析:

kubectl exec -it heapster-v1.2.0-7657f45c77-65w7w --container heapster -n kube-system --nslookup http://monitoring-influxdb

kubectl exec -it heapster-v1.2.0-7657f45c77-65w7w --container heapster -n kube-system -- cat /etc/resolv.conf

kubectl exec -it busybox1 -- nslookup http://monitoring-influxdb

kubectl exec -it busybox1 -- cat /etc/resolv.conf

最后,这里是来自 heapster pod 的日志。我在 dns pod 日志中找不到任何错误:

kubectl 记录 heapster-v1.2.0-7657f45c77-65w7w heapster -n kube-system

任何指针都受到高度赞赏。

编辑:

monitoring-influxdb 位于与 heapster(kube-system)相同的命名空间中。

kubectl exec -it heapster-v1.2.0-7657f45c77-65w7w --container heapster -n kube-system -- nslookup 监控-influxdb.kube-system

但无论出于何种原因,busybox 都能够解析服务器。

kubectl exec -it busybox1 -- nslookup http://monitoring-influxdb.kube-system

kubectl -n kube-system 获取 svc

kubectl -n kube-system 获取 ep

0 投票
2 回答
7988 浏览

dns - Kubernetes 服务发现无法解析 minikube 上的服务主机

我正在尝试使用在 minikube 安装上运行的 k8s 运行两个服务。所以我有服务FooBar,所以当我访问服务Foo时,它必须触发服务Bar来获取数据。

这是Fooservice 的部署配置foo-deployment.yaml

foo-svc.yaml

evnBAR_SERVICE_URL变量在内部使用,Foo因此服务知道主机到Bar. 这是 service 的服务Bar配置 bar-svc.yaml

bar-deployment.yaml

当我使用Foominikube ip 和暴露的服务端口访问服务时,我在 pod 日志中收到以下错误:

但是,我可以bar-server/endpoint像这样使用 minikube ip 和暴露端口访问http://192.168.99.100:31168/endpoint

所以看起来我可以从集群外部访问Foo和服务。Bar但是Foo服务无法解析Bar服务主机,也无法访问它。

UPD:这里有一些带有故障排除细节的更新。

  • 在插件minikubekube-dns启用。
  • 尝试从Foopod的 isidewgetBar服务端点。我可以通过 IP 地址bar-server而不是bar-server:8081/endpoint.
  • 尝试nslookup kubernetes.default.svc.cluster.local localhost看起来不错。这是输出:

    服务器:127.0.0.1 地址1:127.0.0.1 localhost

  • dnspod 也会启动并运行。这是输出kubectl get pods -n=kube-system | grep -i dns

    kube-dns-6777479f6b-vxd7m 3/3 运行 9 1d

0 投票
1 回答
1047 浏览

dns - Kuebrnetes pod 在 minikube 上获取错误的 DNS 名称服务器 IP 地址

我在使用 minikube 上的 kubernetes 之间解决服务主机时遇到了问题。所以从吊舱内部我不能wget web-server:8081/endpoint。但是我可以像这样通过IP地址直接访问同一台服务器wget 10.0.0.81:8081/endpoint

在对问题进行故障排除后,我发现在 pod/etc/resolve.conf文件内部nameserver设置为10.96.0.10. 这是它的外观:

kube-dns服务的集群 IP 为10.0.0.10. 手动将 pod 上的名称服务器更改为10.0.0.10I cat do后wget web-server:8081/endpoint

为什么它设置为错误的 IP 地址以及如何修复它?

0 投票
1 回答
268 浏览

nginx - Ingress 集群内 Kubernetes 通信

我有一个在 minikube(启用插件)中运行的 nginx 入口,带有几个 pod 和服务,入口具有以下配置:

当我在集群之外时,以下工作正常:

但是,当我在集群中时,我希望容器能够使用我的 Ingress 模板中列出的主机名相互通信。例如,我希望以下内容可以工作,但事实并非如此:

相反,它从我没有隶属关系的实际 api.info 网站返回结果。首先,有人可以确认这是否可行吗?

谢谢你。

0 投票
1 回答
777 浏览

dns - 领事 DNS 和 Kubernetes

我正在运行在我的 Kubernetes 1.8.x 集群外部的 Consul 注册的服务器。Consul 在我的 Kube 集群(由 Helm 配置)中运行,并与外部 Consul 集群对等。Kube-dns 配置为使用内部 Consul pod 作为“stubDomains”,具有以下 ConfigMap:

当一切都按预期工作时,kube-dns 会解析外部 consul 域名。问题是当 Consul pod 崩溃并使用新 IP 地址重新启动时。

有没有办法从 Consul pod 崩溃中恢复,而无需手动更改 kube-dns ConfigMap 中列出的 IP 地址?

0 投票
1 回答
746 浏览

docker - Kubernetes 上的超级账本 - Kubernetes 如何知道链码容器

我一直在玩弄 Hyperledger 以使其在 Kubernetes 上运行。我成功地做到了。当对等方实例化链代码时,我对容器的解决方案/解决方法不满意的唯一一件事。

Kubernetes 根本不知道这个容器,因为它不是由 Kubernetes 和对等方启动的。为了使对等点和链码相互通信,我必须使用 kube-dns 服务的 dns 服务器 IP 地址更新在 kubernetes 节点上运行的 docker 守护进程。

是否可以以 kubernetes 知道链码容器的方式实例化链码。而且链码容器能够以无缝方式与对等方对话,而不是更新 Kubernetes 集群中节点的 docker 守护进程