问题标签 [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 - 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
会使问题消失,但我需要确保这个问题不会再次发生。
有人知道发生了什么吗?
kubernetes - 使 Kubernetes 集群中的 pod DNS 名称可解析
设置
名为 frontend 的部署的 pod 通过名为 frontend 的服务公开。
问题
通过busybox查询服务前端的DNS名称返回服务IP地址。通过 busybox 查询 pod frontend-b48b88789-dcxs6 的 DNS 名称无法解析。
问题
我必须做什么才能通过 Kubernetes 集群 DNS 系统解析 pod?
我一直在寻找答案的来源
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
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 开始。
我错过了什么?
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
dns - Kubernetes 服务发现无法解析 minikube 上的服务主机
我正在尝试使用在 minikube 安装上运行的 k8s 运行两个服务。所以我有服务Foo
和Bar
,所以当我访问服务Foo
时,它必须触发服务Bar
来获取数据。
这是Foo
service
的部署配置foo-deployment.yaml
:
foo-svc.yaml
:
evnBAR_SERVICE_URL
变量在内部使用,Foo
因此服务知道主机到Bar
. 这是 service 的服务Bar
配置
bar-svc.yaml
:
bar-deployment.yaml
:
当我使用Foo
minikube ip 和暴露的服务端口访问服务时,我在 pod 日志中收到以下错误:
但是,我可以bar-server/endpoint
像这样使用 minikube ip 和暴露端口访问http://192.168.99.100:31168/endpoint
。
所以看起来我可以从集群外部访问Foo
和服务。Bar
但是Foo
服务无法解析Bar
服务主机,也无法访问它。
UPD:这里有一些带有故障排除细节的更新。
- 在插件
minikube
上kube-dns
启用。 - 尝试从
Foo
pod的 isidewget
到Bar
服务端点。我可以通过 IP 地址bar-server
而不是bar-server:8081/endpoint
. 尝试
nslookup kubernetes.default.svc.cluster.local localhost
看起来不错。这是输出:服务器:127.0.0.1 地址1:127.0.0.1 localhost
dns
pod 也会启动并运行。这是输出kubectl get pods -n=kube-system | grep -i dns
kube-dns-6777479f6b-vxd7m 3/3 运行 9 1d
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.10
I cat do后wget web-server:8081/endpoint
。
为什么它设置为错误的 IP 地址以及如何修复它?
nginx - Ingress 集群内 Kubernetes 通信
我有一个在 minikube(启用插件)中运行的 nginx 入口,带有几个 pod 和服务,入口具有以下配置:
当我在集群之外时,以下工作正常:
但是,当我在集群中时,我希望容器能够使用我的 Ingress 模板中列出的主机名相互通信。例如,我希望以下内容可以工作,但事实并非如此:
相反,它从我没有隶属关系的实际 api.info 网站返回结果。首先,有人可以确认这是否可行吗?
谢谢你。
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 地址?
docker - Kubernetes 上的超级账本 - Kubernetes 如何知道链码容器
我一直在玩弄 Hyperledger 以使其在 Kubernetes 上运行。我成功地做到了。当对等方实例化链代码时,我对容器的解决方案/解决方法不满意的唯一一件事。
Kubernetes 根本不知道这个容器,因为它不是由 Kubernetes 和对等方启动的。为了使对等点和链码相互通信,我必须使用 kube-dns 服务的 dns 服务器 IP 地址更新在 kubernetes 节点上运行的 docker 守护进程。
是否可以以 kubernetes 知道链码容器的方式实例化链码。而且链码容器能够以无缝方式与对等方对话,而不是更新 Kubernetes 集群中节点的 docker 守护进程