问题标签 [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.
kubernetes - 在裸机上使用 Kubernetes 1.6 安装插件的说明?
我已经按照这个文档从头开始设置了我的 kubernetes 集群:https ://kubernetes.io/docs/getting-started-guides/scratch/
我的 kubernetes master 和 worker 工作正常,但是我没有找到部署 dns 插件的说明。
kubernetes - kube-dns 不断在 coreos 上使用 kubenetes 重新启动
我在https://github.com/kfirufk/coreos-kubernetes使用我的 coreos-kubernetes 安装脚本的分支,使用 hyperkube v1.5.5_coreos.0 在 Container Linux 上安装了 Kubernetes 。
我有两台 ContainerOS 机器。
- coreos-2.tux-in.com 解析为 192.168.1.2 作为控制器
- coreos-3.tux-in.com 解析为 192.168.1.3 as worker
kubectl get pods --all-namespaces
返回
所以我可以看到它kube-dns-782804071-h78rf
不断重新启动。
kubectl describe pod kube-dns-3675956729-r7hhf --namespace=kube-system
返回:
这表明kubedns-amd64:1.9
在Ready: false
这是我的kude-dns-de.yaml
文件:
这是我的kube-dns-svc.yaml
:
任何有关该问题的信息将不胜感激!
更新
rkt list --full 2> /dev/null | grep kubedns
显示:
journalctl -m _MACHINE_ID=744a45790849b1f5cb05d40f3734
提供:
我试图添加 - --proxy-mode=userspace
,/etc/kubernetes/manifests/kube-proxy.yaml
但结果是一样的。
kubectl get svc --all-namespaces
提供:
kubectl get cs
提供:
我kube-proxy.yaml
的内容如下:
这是我能找到的所有有价值的信息。有任何想法吗?:)
更新 2
在http://pastebin.com/2GApCj0niptables-save
控制器 ContainerOS 上的输出
更新 3
我在控制器节点上运行 curl
意味着它可以正确访问它,我没有添加足够的参数来授权它吗?
更新 4
感谢@jaxxstorm,我删除了印花布清单,更新了他们的 quay/cni 和 quay/node 版本并重新安装了它们。
现在 kubedns 不断重启,但我认为现在 calico 可以工作了。因为它第一次尝试在工作节点而不是控制器节点上安装 kubedns,而且当我rkt enter
安装 kubedns pod 并尝试安装时,wget https://10.3.0.1
我得到:
这清楚地表明存在某种反应。哪个好?
现在kubectl get pods --all-namespaces
显示:
所以.. 4/4 准备好了,但它一直在重新启动。
kubectl describe pod kube-dns-3675956729-ljz2w --namespace=kube-system
在http://pastebin.com/Z70U331G输出
所以它无法连接到http://10.2.47.19:8081/readiness,我猜这是kubedns的ip,因为它使用端口8081。不知道如何继续进一步调查这个问题。
感谢一切!
kubernetes - 让 KubeDNS 工作的问题
所以我不知道如何进行故障排除,但我整天都在做这件事,到处搜索。
我无法让 KubeDNS pod 工作。我正在安装在裸机上的 Fedora 25 上进行部署。我目前在集群中只有一个盒子,kubelet 在 master 上运行。我没有在容器中运行 kubelet 或其他 Kubernetes 服务。
nslookup kubernetes.default.svc.cluster.local 127.0.0.1
当我尝试在 kubernetes.default 服务 (和)上的 kubedns 容器内运行 DNS 查找时,nslookup kubernetes.default.svc.cluster.local 127.0.0.1:10053
它失败了。
我最终在 kube-apiserver 日志中发现如下消息,当我尝试进行查找时按时间排列:
kube-apiserver[20876]: E0315 01:09:16.134237 20876 proxy.go:193] Error proxying data from client to backend: write tcp 192.168.1.203:33074->192.168.1.203:10250: write: broken pipe
我使用的服务和复制控制器配置来自https://coreos.com/kubernetes/docs/latest/deploy-addons.html#deploy-the-dns-add-on,clusterIP
设置明显更改为匹配我的环境.
我不太确定在故障排除方面还有哪些其他地方可以查看,因此感谢您提供任何帮助。我会发布任何有用的配置,但我认为猜测那些配置是没有用的。
kubernetes - 通过 DNS 或静态 ClusterIP 为 PersistentVolume 配置 NFS 服务器
我有一个运行在 google 容器引擎上的 kubernetes 集群,它定义了一个运行 NFS-Server 的 Pod,我想通过各种PersistentVolume
s 在其他 Pod 中访问它。
如果 NFS 服务在同一个集群中,那么配置 NFS 服务的最佳方式是什么?
根据各种文档,我发现它不可能依赖 kube-dns,因为启动 kubernetes pod 的节点未配置为将其用作其 DNS。
所以这是没有问题的(而且真的不起作用 - 我用各种不同的主机名/FQDN 测试了它......)
我可以启动 NFS 服务器并通过检查其 ClusterIP kubectl describe svc nfs-service
,然后为 PV 硬编码其 Endpoint-IP(这可行):
但这感觉不对——一旦我需要重新创建 NFS 服务,我就会得到一个新的 IP,我必须基于它重新配置所有 PV。
这里的最佳做法是什么?我很惊讶我没有找到任何例子,因为我认为这是一件很正常的事情——不是吗?
是否可以为服务设置一种静态 IP,以便我可以依赖 NFS 服务始终使用相同的 IP?
kubernetes - 将 kube-dns 的 IP 作为 env 传递给容器
有没有办法将 kube-dns 服务器 IP 传递给容器,以便容器内的服务可以正确解析名称?
我正在尝试运行 nginx,它需要resolver
指定一个指令来解析 DNS 服务器的名称。
我不想使用公共 DNS 服务器;只有 kube-dns 提供的那个。
此外,我需要一种动态的方式来传递 IP,因为 DNS 服务器 IP 可以在各种云平台或裸机配置之间更改。所以,我不能使用硬编码的10.0.0.10
IP。
mongodb - Kubernetes 和容器名称解析
我正在尝试在 kubernetes 集群上设置 MongoDB 和 MongoDB 监控代理。
监控代理首先查询 mongodb 实例的服务端点,并接收主机名作为响应。然后它停止使用服务端点,并开始使用主机名连接到失败的实例,因为没有解析来解析容器名称。
我想我可以使用无头服务来实现这一点,尽管使用无头服务不是一种选择。
有什么方法可以为 Kubernetes 中的容器/pod 启用主机名解析或在 kube-dns 中注入自定义 DNS 记录?
kubernetes - 如何在 pod IP 上使用 kube-dns 启用反向 DNS 查找?
是否可以在 Kuberenetes 上的同一命名空间中从一个 Pod 到另一个 Pod 进行反向 DNS 查找?设置:Kubernetes 1.5,kube-dns 1.9
当我使用 nslookup 执行 pod 时,我没有得到主机名,而只有 nslookup 超时,例如:
真实0m5.592s
mypod2 确实有内部 IP 172.18.14.13。mypod 和 mypod2 都已部署到相同的命名空间(默认)。
从 mypod 到 mypod 的 nslookup 有效:
我必须配置一些特殊的东西还是设计不可能?
kubernetes - 如何为 minikube 安装 kube-dns 插件?
有人可以详细说明安装kube-dns插件所需的步骤吗?我已经在上一个链接中下载了将近 400MB 的 git repo 并make
按照说明运行但得到Nothing to be done for 'all'.
文档不清楚附加组件的存在形式以及如何安装它们。那里的“管理员指南”链接将我带到这个无用的页面。
我试过https://stackoverflow.com/a/42315074/4978821,但收到一条error validating data
消息。即使这可行,它似乎也是一个非官方且尴尬的解决方案。
像这样的答案也太模糊了: https ://stackoverflow.com/a/36105547/4978821 。
一旦我有了解决方案,我很乐意创建一个拉取请求来改进文档。
更新以澄清我的问题:
正如 Aaron 所提到的,在 minikube 中默认启用了 dns 插件。运行minikube addons list
显示已启用。但是,如果我进入一个正在运行的 pod 的 bash shell,例如kubectl exec -it node-controller-poqsl bash
,尝试使用 ping 访问我的 mongo 服务,它会解析为公共 URL,而不是 kubernetes 服务 IP。
kubernetes - 在新 Kubernetes 1.6 集群的 kube-system 命名空间中创建 kube-dns ConfigMap
我正在尝试按照此博客文章中的示例为我的 pod 提供上游 DNS 服务器。
我在 us-east1-d 中创建了一个新的 GKE 集群(根据此处4 月 4 日的条目,1.6.0 可用)。
然后,我在以下 YAML 文件 kube-dns-cm.yml 中定义了一个 ConfigMap:
当我尝试创建 ConfigMap 时,我被告知它已经存在:
我尝试删除现有的 ConfigMap 并将其替换为我自己的,但是当我随后创建 pod 时,它们似乎没有生效(名称没有像我希望的那样解析)。这个故事是否比博文中解释的更多(例如,重新启动 kube-dns 服务或 pod)?谢谢!
编辑:删除和重新创建 ConfigMap确实有效,但不完全是我希望的方式。我的 docker 注册表位于私有(公司)网络上,解析注册表的名称需要上游名称服务器。所以我不能在我的 pod yaml 文件上使用注册表的 DNS 名称,但是从该 yaml 文件创建的 pod 将具有所需的 DNS 解析(在替换 ConfigMap 之后)