问题标签 [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 投票
1 回答
10188 浏览

dns - 如何为集群外的查询公开 kube-dns 服务?

我正在尝试公开“kube-dns”服务,以便在 Kubernetes 集群之外进行查询。为了做到这一点,我编辑了“服务”定义,将“类型”从“ClusterIP”更改为“NodePort”,这似乎工作正常。

但是,当我尝试在节点端口上查询时,我能够获得 TCP 会话(使用 Telnet 测试),但似乎无法从 DNS 服务器获得任何响应(使用 dig 测试)。

我查看了“kube-dns”Pod 上每个容器的日志,但看不到任何不愉快的地方。此外,从集群内(从正在运行的容器)查询 DNS 似乎没有任何问题。

有没有人尝试过暴露 kube-dns 服务?如果是这样,是否有任何额外的设置步骤或者您对我有任何调试建议?

服务定义如下:

0 投票
2 回答
2607 浏览

proxy - KUBE_SERVICE 在 iptables 中插入 REJECT 规则

我在 4 centos 7 盒子上运行 kubernetes,master 和 minions。我也安装了法兰绒和skydns。flannel 覆盖 ip 是 172.17.0.0/16,我的服务集群 ip 是 10.254.0.0/16。我在 k8 集群上运行大三角帆吊舱。我看到的是大三角帆服务无法找到对方。每个 pod 从 172.17 切片中获取一个 ip,我可以使用该 ip 从任何节点对 pod 执行 ping 操作。然而,服务本身使用集群 ip 并且无法相互通信。由于 Kube-proxy 应该转发此流量,因此我查看了 iptable 规则,我看到了:

似乎 kube-proxy 无法转发。我在 kube-proxy 启动时没有错误:

我错过了什么?

0 投票
1 回答
741 浏览

docker - Docker 上的 Kubernetes 创建具有空服务帐户且没有令牌的容器,导致容器崩溃并重新启动

仍然遇到类似的问题 1.3.0 和 1.4.0-alpha.0

就我而言(基于 docker 的设置),trusty 或 kubedns 都会从 api 服务器获得未经授权。

奇怪的是,我发现这些秘密不在实例内部,在路径 /var/run/secrets/kubernetes.io/serviceaccount 下

虽然它们似乎在节点和代理实例中

  • 删除秘密并删除 pod 然后重新创建它们没有效果
  • 卸载和删除文件夹后重新启动集群也没有效果

这自然会导致 kubedns 无法启动。在下面登录

0 投票
2 回答
1024 浏览

kubernetes - 使用 skydns-rc.yaml.base 文件创建 kubedns 容器失败

我使用 skydns-rc.yaml.base(/kubernetes-release-1.3/cluster/addons/dns/sky..) 文件来创建 k8s dns 服务。但 kubedns 容器总是无法创建。

进行了以下替换:

  1. namespace: kube-system取而代之namespace: default
  2. __PILLAR__DNS__REPLICAS__取而代之1
  3. __PILLAR__DNS__DOMAIN__取而代之cluster.local
  4. __PILLAR__FEDERATIONS__DOMAIN__MAP__已删除

编辑后的元素信息和整个文件如下所示:

以上信息有问题吗?

其他信息:

0 投票
1 回答
1132 浏览

kubernetes - 使用 skydns-rc.yaml.base 模板文件创建 kubedns 容器失败

我使用 skydns-rc.yaml.base(/kubernetes-release-1.3/cluster/addons/dns/sky..) 文件来创建 k8s dns 服务。但 kubedns 容器总是无法创建。

编辑后的元素信息显示如下:

命名空间:kube-system                                   替换为       默认
PILLAR__DNS__REPLICAS                               替换为        1
--domain=PILLAR__DNS__DOMAIN。                 替换为     --domain=cluster.local
PILLAR__FEDERATIONS__DOMAIN__MAP    已删除

整个 skydns-rc.yaml.base 模板文件如下所示:

其他信息:

集群服务 ip 范围是 10.254.0.0/16
域是 cluster.local
命名空间是默认的

执行语句kubectl describe pod kube-dns-v18结果如下所示

0 投票
1 回答
1532 浏览

kubernetes - DNS 插件 Kubernetes CentOS 7 集群

我一直在努力让 DNS 插件在 CentOS 7.2 集群上运行。我使用此处的说明安装了集群:http: //severalnines.com/blog/installing-kubernetes-cluster-minions-centos7-manage-pods-services

在此配置中,master 正在运行:etcd、kube-scheduler、kube-apiserver 和 kube-controller-manager。节点正在运行:docker、kubelet 和 kube-proxy 和 flanneld。集群在此配置中运行良好。豆荚,服务都在工作。下一步是尝试启用 DNS。

注意: 此集群不使用证书进行身份验证。

有几个关于如何做到这一点的“指南”,但它们似乎都不适用于这种类型的集群。

首先,请您帮我解决一些困惑。dns 插件容器在哪里运行?

  • 他们必须在Master上运行吗?
  • 它们可以像集群上的任何其他 pod 一样部署吗?

这是我到目前为止所尝试的:

Kubernetes 版本:从 yum 安装香草。

在下面的 sky-dns.yaml 文件中,我已将模板变量替换为 1 个副本集,将 DNS_DOMAIN 设置为“cluster.local”。根据 StackOverflow 上的一些建议,我向“/kube-dns”容器“--kube-master-url= http://10.2.1.245:8080 ”添加了一个命令行。

SkyDNS-rc.yaml(指向 kube-dns v18)

在每个节点(主节点和 3 个小节点)上,我更新了 /etc/kubernetes/conf 文件,在末尾添加了 DSN 部分(为完整起见,发布了完整文件)。

如果我使用上面的复制控制器,是否需要添加这些?

/etc/kubernetes/conf

这是我在部署 KubeDNS 时看到的。

日志:

0 投票
1 回答
454 浏览

containers - Kubernetes 中的端点抖动

我的 Kubernetes 集群中的服务无法访问。当我检查端点不可用于服务时。在进一步检查时,我发现端点在某个值和空值之间不断变化。正如其他帖子中所建议的那样,我检查了标签选择器。豆荚起来了。容器正在侦听服务的目标端口。这里还有什么。

进一步更新。kube-controller-manager 日志显示以下错误。E0810 20:02:21.887677 10451 nodecontroller.go:771] 更新节点时出错:客户端:响应是无效的 json。端点可能不是有效的 etcd 集群端点。

0 投票
1 回答
490 浏览

kubernetes - Kubernetes PetSet DNS 不工作

我有一个名称 ==elasticsearch和 serviceName ==的 Kubernetes PetSet es。它确实创建了 pod,并且正如预期的那样,它们的名称类似于elasticsearch-0elasticsearch-1。但是,DNS 似乎无法正常工作。elasticsearch-0.es不解决(也不解决elasticsearch-0.default,等等)。如果您查看生成的 srv 记录,它们似乎是随机的而不是可预测的:

有人有想法么?


细节

这是实际的 PetSet 和服务定义:

0 投票
2 回答
1087 浏览

kubernetes - kube-dns does not work

I've created cluster(Centos 7) and deploy rc with kube-dns. Cluster works fine but kube-dns prints error in log.

apiserver: ### # kubernetes system config # # The following values are used to configure the kube-apiserver #

master config file:

Does anybody know what happen?)

0 投票
1 回答
2202 浏览

dns - 如何从 kubernetes 节点的角度将服务名称解析为 IP?

我有一个在 GCE 上运行的 kubernetes 集群。

我创建了一个设置,其中有 2 个pod glusterfs-server-1glusterfs-server-2这是我的 gluster 服务器。

2glusterfsd守护进程正确通信,我能够创建复制卷、向其中写入文件并看到文件在两个 pod 上正确复制。

我还调用了 1 个服务glusterfs-server来自动平衡我的 2 个 glusterfs pod 之间的流量。

从另一个 pod 内部,我可以发出mount -t glusterfs glusterfs-server:/myvolume /mnt/myvolume并且一切正常。

现在,我真正想要的是glusterfs在创建容器时能够在我的 .yaml 文件中使用卷类型:

...truncated... spec: volumes: - name: myvolume glusterfs: endpoints: glusterfs-server path: myvolume ...truncated...

不幸的是,这不起作用。我能够找出为什么它不起作用:

直接连接到 kubernetes节点时,发出 amount -t glusterfs glusterfs-server:/myvolume /mnt/myvolume不起作用,这是因为从我的节点的角度来看glusterfs-server,它不会解析为任何 IP 地址。(即不getent hosts glusterfs-server返回任何内容)

而且,由于 glusterfs 的工作方式,即使直接使用服务的 IP 也会失败,因为 glusterfs 最终仍会尝试解析名称glusterfs-server(并失败)。

现在,只是为了好玩并验证这是问题所在,我编辑了我的节点resolv.conf(通过放置我的 kube-dns IP 地址和搜索域),以便它能够正确解析我的 pod 和服务 IP 地址。然后我终于能够mount -t glusterfs glusterfs-server:/myvolume /mnt/myvolume在节点上成功发布。然后我还能够使用 glusterfs 卷(使用上面的 PodSpec)创建一个 pod。

现在,我相当肯定修改我的节点resolv.conf是一个糟糕的主意:kubernetes 具有命名空间的概念,如果 2 个不同命名空间中的 2 个服务共享相同的名称(例如 glusterfs-service),agetent hosts glusterfs-service将解析为 2 个不同的 IP 2个不同的命名空间。

所以我的问题是:

我可以做些什么让我的节点能够解析我的 Pod/服务 IP 地址?