Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker K8s-不同名称空间中POD之间的DNS解析_Docker_Kubernetes_Dns_Kubectl - Fatal编程技术网

Docker K8s-不同名称空间中POD之间的DNS解析

Docker K8s-不同名称空间中POD之间的DNS解析,docker,kubernetes,dns,kubectl,Docker,Kubernetes,Dns,Kubectl,我在一个名为a的名称空间中有一个简单的pod, 在命名空间b中还有一个pod 我还有一个测试脚本,可以从a向b调用grpc 此脚本在使用FQDN时不起作用,例如some-service.b.cluster.local 如果使用b命名空间中pod的确切IP地址,则此脚本不起作用 我想是DNS解析中的一些错误, 但我真的无法前进 有什么帮助吗 kubectl exec -n a somepod-f647b7d95-mrvfr cat /etc/resolv.conf nameserver 10.1

我在一个名为a的名称空间中有一个简单的pod, 在命名空间b中还有一个pod

我还有一个测试脚本,可以从a向b调用grpc

此脚本在使用FQDN时不起作用,例如some-service.b.cluster.local 如果使用b命名空间中pod的确切IP地址,则此脚本不起作用 我想是DNS解析中的一些错误, 但我真的无法前进

有什么帮助吗

kubectl exec -n a somepod-f647b7d95-mrvfr cat /etc/resolv.conf

nameserver 10.12.0.10
search chimera.svc.cluster.local svc.cluster.local cluster.local c.<company-name>-staging.internal <provider>.internal
options ndots:5

从你的描述来看,你似乎是在经营库伯顿。我给你的第一条建议是,当库比登斯在一个地方的时候,去科雷恩斯

其次,有两件事突然向我袭来

你说的是在吊舱之间打电话,而不是打电话。虽然Kubernetes确实在您的应用程序之间提供服务发现,但正如您所知,它是通过DNS实现的。然而,仅仅因为pod可以相互解析,容器的端口就会暴露在pod之外。要做到这一点,即使是集群中的应用程序,也不能解决它,您必须为每个Pod或控制器声明一个服务资源

当您谈到进行引用B pod/服务的FQDN的调用时,您没有指定默认FQDN架构,也没有提到已对此进行了自定义

首先,能否请kubectl为运行A和B吊舱的两个名称空间获取svc-n名称空间,并确认已创建类型为的服务,并且已将IP地址与该服务关联

其次,您是否可以尝试执行从应用程序a到应用程序B的服务的连接尝试

some-service.b.svc.cluster.local

请注意svc部分。您在OP中提到了一些-service.b.cluster.local

最后,如果一切恢复正常,我们可以开始对kube dns进行故障排除。看起来这三个吊舱都在运行。但是,您是否尝试过对其进行修改和/或?如果有什么有趣的地方,你能试试下面的内容并分享一个摘要吗

kubectl describe pod -n kube-system kube-dns-6cd7bbdf65-jnntn
kubectl describe pod -n kube-system kube-dns-6cd7bbdf65-txmlj
kubectl describe pod -n kube-system kube-dns-autoscaler-8687c64fc-29jgq

我想logs命令将为您提供您正在寻找的答案。如果您在这个问题上需要任何进一步的澄清或帮助,请告诉我。我很乐意帮忙

根据您的描述,您似乎正在运行KubeDNS。我给你的第一条建议是,当库比登斯在一个地方的时候,去科雷恩斯

其次,有两件事突然向我袭来

你说的是在吊舱之间打电话,而不是打电话。虽然Kubernetes确实在您的应用程序之间提供服务发现,但正如您所知,它是通过DNS实现的。然而,仅仅因为pod可以相互解析,容器的端口就会暴露在pod之外。要做到这一点,即使是集群中的应用程序,也不能解决它,您必须为每个Pod或控制器声明一个服务资源

当您谈到进行引用B pod/服务的FQDN的调用时,您没有指定默认FQDN架构,也没有提到已对此进行了自定义

首先,能否请kubectl为运行A和B吊舱的两个名称空间获取svc-n名称空间,并确认已创建类型为的服务,并且已将IP地址与该服务关联

其次,您是否可以尝试执行从应用程序a到应用程序B的服务的连接尝试

some-service.b.svc.cluster.local

请注意svc部分。您在OP中提到了一些-service.b.cluster.local

最后,如果一切恢复正常,我们可以开始对kube dns进行故障排除。看起来这三个吊舱都在运行。但是,您是否尝试过对其进行修改和/或?如果有什么有趣的地方,你能试试下面的内容并分享一个摘要吗

kubectl describe pod -n kube-system kube-dns-6cd7bbdf65-jnntn
kubectl describe pod -n kube-system kube-dns-6cd7bbdf65-txmlj
kubectl describe pod -n kube-system kube-dns-autoscaler-8687c64fc-29jgq

我想logs命令将为您提供您正在寻找的答案。如果您在这个问题上需要任何进一步的澄清或帮助,请告诉我。我很乐意帮忙

从pod a中添加/etc/resolv.conf的内容,并检查coredns pod是否在kube系统名称空间中运行更新我们使用kube Dnswave您是否尝试了一些服务。b.svc.cluster.local?是的,我尝试过。。。信息技术s未解析kubectl的输出获取pods-n kube系统从pod a添加/etc/resolv.conf的内容,并检查coredns pod是否在kube系统名称空间中运行更新我们使用kube DNS您是否尝试了一些服务。b.svc.cluster.local?是的,我尝试了。。。信息技术未解决kubectl get pods-n kube系统的输出
kubectl logs -n kube-system kube-dns-6cd7bbdf65-jnntn
kubectl logs -n kube-system kube-dns-6cd7bbdf65-txmlj
kubectl logs -n kube-system kube-dns-autoscaler-8687c64fc-29jgq