问题标签 [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 回答
3228 浏览

kubernetes - Kubernetes 上的服务发现

我在裸机 kubernetes 集群上设置了 kubeDNS。我认为这将允许我访问此处描述的服务(http:// 对于那些不想点击链接的人),但是当我运行时

我得到错误

curl:(6)无法解析主机:monitoring-influxdb

当我对任何命名空间中的服务名称运行 curl 时,情况就是如此。这是我的 kubDNS 设置错误还是我需要采取不同的步骤才能实现这一点?在本文结尾处运行测试时,我得到了预期的输出。

以供参考:

kubeDNS 控制器 yaml 文件

kubeDNS 服务 yaml 文件

kubelet 标志

kubectl 的输出在默认和 kube-system 命名空间中获取 svc

0 投票
1 回答
872 浏览

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

我在 kube-system NS 中设置了一个名为 kube-dns 的配置映射,其中包含一些自定义上游 DNS 条目(其中 3 个),但是当我的容器/pod 没有在其 resolv.conf 文件中继承这些自定义 DNS 条目时我通过一个简单的部署来安排它们。

我在 kube-dns pod 中的日志似乎没有指向配置映射的名称(它看起来像一个空字符串)。这可能是问题吗?

添加自定义配置映射后,我确实删除了 kube-dns pod,并允许现有的 kube-dns 部署重新创建 pod(有 2 x 组 kube-dns pod 被终止并重新创建) .

我使用本指南来设置我的配置映射(我是一篇关于 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

这是我的配置图:

我是否需要在其他地方指定 kube-dns 的部署引用配置映射的名称?在 pod 日志中,我可以看到配置映射名称的标志似乎是一个空字符串。

我在删除旧 pod 后查看的新 kubedns pod 的日志说(注意第 5 行是我看到空字符串引用的地方):

我正在对此进行测试的 pod 设置为使用 ClusterFirst DNS 类型,这是文档所说我需要它才能工作的内容。

任何关于在哪里寻找问题的建议或指示都将受到欢迎。

0 投票
0 回答
621 浏览

docker - Kubernetes kube-dns 在 crashloop 中暂停容器,错误添加网络:Statfs 失败\“/proc/54226/ns/net\”:

我有一个 Kubernetes onebox 部署,其中包含以下(容器化)组件,所有组件都运行为--net=host,kubelet 作为特权 Docker 容器运行,并将 kubernetes 标志--allow-privileged设置为 true。

最重要的是,我启用了插件管理器kubectl create -f https://github.com/kubernetes/kubernetes/blob/master/test/kubemark/resources/manifests/kube-addon-manager.yaml,并将 calico 2.6.1 和 kube-dns 1.14.5 的默认 yaml 清单安装到/etc/kubernetes/addons/. calico pod 按预期提供了两个节点(install-cni 和 calico-node)。

但是,kube-dns 卡在 ContainerCreating 或 ContainerCannotRun 中,在尝试启动 Kubernetes 暂停容器时出现以下错误:

我看到 \pause 容器不断出现,只是在一秒钟后退出,并带有一个无害的错误消息(这个是旧的,我停止了集群,所以它不会继续产生更多的容器):

/proc/54226我的主机上不存在该目录,我认为这就是 CNI 抱怨的原因。但是 Calico 的暂停容器很好,运行相同的图像,所以必须要么只在 kube-dns 的情况下无法写入,要么在 Calico 的情况下不尝试写入。我在 Openshift 上发现了一些与 SELinux 相关的类似错误的引用,但我运行的是一个裸机 Ubuntu 14.04 VM,甚至没有安装 SELinux。

我的 CNI conf 也很简单,由 install-cni calico 容器生成:

有没有人碰到类似的东西?

0 投票
2 回答
6381 浏览

azure - 无法进入 Kubernetes pod。来自服务器的错误:错误拨号后端:拨号 tcp:在 168.63.129.16:53 上查找(节点主机名):没有这样的主机

我们在 Azure 公共云中使用 ACS 引擎部署了一个 K8S 集群。我们能够创建部署和服务,但是当我们使用“ kubectl exec -ti (pod name) (command) ”进入 pod 时,我们收到以下错误,

来自服务器的错误:错误拨号后端:拨号 tcp:在 168.63.129.16:53 上查找(节点主机名):没有这样的主机

我查看了整个互联网并尽我所能来解决这个问题,但到目前为止还没有运气。操作系统是 Ubuntu,168.63.129.16 是 Azure 用于 DNS 的公共 IP。(请参阅下面的链接)

https://blogs.msdn.microsoft.com/mast/2015/05/18/what-is-the-ip-address-168-63-129-16/

我已经将主机条目添加到/etc/hosts和条目到主/节点服务器的resolv.conf和 nslookup 解决相同的问题。我还通过向 kubelet 添加--resolv-conf标志进行了测试,但仍然失败。我希望这个社区的人可以帮助我们解决这个问题。

0 投票
1 回答
1196 浏览

ip - 无法连接作为无头服务创建的 Kubernetes 端点 IP

创建了一个无头服务:

myapp-service-headless.yaml

将其创建到 Kubernetes 集群后,检查其服务状态:

尝试连接172.17.0.11:8000or 172.17.0.9:8000,挂起,没有结果。

这里使用kube-dns:myapp-service-headless.default.svc.cluster.local在应用程序中。现在它在 pod 的容器中。

那么如何通过 API 从其他应用程序连接到这些应用程序呢?可以使用哪个IP?

0 投票
3 回答
3556 浏览

dns - Kubernetes 上的多代理 Kafka 如何设置 KAFKA_ADVERTISED_HOST_NAME

我当前具有 3 个 Kafka 代理的 Kafka 部署文件如下所示:

这将创建 3 个 Kafka 代理作为有状态集,并使用具有 FQDN(完全限定域名)的 Kubedns 服务连接到 Zookeeper 集群,例如:

Broker ID 是根据 pod 名称生成的:

结果:

但是,为了使用 Kafka 代理的 Kubedns 名称:

我需要能够KAFKA_ADVERTISED_HOST_NAME根据 pod 的名称将变量设置为上述 FQDN 值。

目前我将变量设置为 pod 的名称:

结果:

但不知何故,我需要附加 DNS 名称的其余部分。

有没有办法直接设置 DNS 值?

像这样的东西:

0 投票
1 回答
796 浏览

dns - 如何解决busybox和kube-dns之间无法访问的udp端口

如何解决此问题?

我有一个 Kubernetes 的手动设置,它用作集群内部 DNS,coredns。已经部署了一个 busybox pod 来对kubernetes.default进行 nslookup 。

查找失败并显示消息nslookup: can't resolve 'kubernetes.default。为了更深入地了解查找过程中发生的情况,我使用 tcpdump 从我的 busybox pod 中检查了网络流量。这表明我的 pod 可以成功连接到 coredns pod,但 coredns pod 将无法连接回来:

集群基础设施

Busybox IP

EndPoints IP 查看 DNS IP 和端口

0 投票
1 回答
496 浏览

kubernetes - 带有 weave 的 kube-dns 无法查找服务

我在我的 Fedora 机器上用一个 vagrant 节点创建了一个 kubeadm (Kubernetes 1.8) 集群。集群运行良好,但我在测试 dns 时遇到了一个奇怪的问题:

在 mynamespace 命名空间中运行的服务的默认命名空间中,busybox pod 中的 nslookup 工作正常,但似乎当我尝试对同一自定义命名空间(mynamespace)中的服务进行 nslookup 时,dns 首先无法解析,但随后解析. 我在这里想念什么?

任何帮助将不胜感激。

0 投票
1 回答
174 浏览

minikube - 如何配置 kubernetes kub-dns 访问外网?

我通过 windows minikube 尝试了示例。

在 minikube ssh,我可以 ping google.com。

但在容器内,我无法 ping yahoo.com,我该怎么办?

请需要帮助。

问候。

这是日志

0 投票
2 回答
1938 浏览

kubernetes - 通过域名连接mongo服务

我从 *.yaml 创建部署和服务。在容器中,我通过nslookupor找到 ns 记录dig,但无法通过服务名称或服务 IP 连接到 db。

任何人都可以告诉我,我做错了什么?

环境

Minikube 版本

操作系统(例如来自 /etc/os-release):

虚拟机驱动程序(例如cat ~/.minikube/machines/minikube/config.json | grep DriverName):

ISO 版本(例如cat ~/.minikube/machines/minikube/config.json | grep -i ISOminikube ssh cat /etc/VERSION):

DNS 日志

边车

dnsmasq

库本

发生了什么:不能pingtraceroute通过服务名称或 IP 服务。

您期望发生的事情

ping通过服务名称到服务。

如何重现它(尽可能最小和精确):

默认命名空间

kube 系统

解析.conf

nslookup 测试

ping 测试

跟踪路由测试(好的)

测试 nslookup

测试ping

测试跟踪路由(坏)

跟踪路由 IP(坏)

来自节点的 iptables

mongo-deployment.yaml

mongo-service.yaml

mongo-volume0-persistentvolume.yaml

mongo-claim0-persistentvolumeclaim.yaml

但是,如果我通过 ssh 隧道连接到容器 mongo,它可以工作:

我的操作系统信息:

例如 up mongo 连接到minikubeKernel 4.9.13 ...

=====

更新日期 2017/12/22

现在创建两个带有 mongo 的 pod into (mongomongo2)。从mongo2实例我可以通过 dns 名称mongo.default.svc.cluster.local:27017连接,而不是通过服务 IP 连接。但是从mongo实例中我无法通过mongo2.default.svc.cluster.local.

附加到mongo2pod 并连接到 db mongopod。