开发者社区> 问答> 正文

Kubernetes(GKE)内部查找无法解析

我在GKE上遇到Kubernetes的问题。我无法按名称解析服务。我有一个drone-server连接到单个pod 的服务运行。连接到服务的入口已成功连接,但是当尝试执行例如nslookup来自busyboxpod的进程时,它无法解析主机名。

服务:

$ k get services -n drone
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
drone-server ClusterIP 10.39.242.23 80/TCP 2d
drone-vault ClusterIP 10.39.248.166 80/TCP 40m
Busybox nslookup:

$ kubectl exec -ti busybox -- nslookup drone-server
Server: 10.39.240.10
Address 1: 10.39.240.10 kube-dns.kube-system.svc.cluster.local

nslookup: can't resolve 'drone-server'
当我尝试查找kubernetes.default时,我收到了一个本地地址:

$ kubectl exec -ti busybox -- nslookup kubernetes.default
Server: 10.39.240.10
Address 1: 10.39.240.10 kube-dns.kube-system.svc.cluster.local

Name: kubernetes.default
Address 1: 10.39.240.1 kubernetes.default.svc.cluster.local
Resolv配置:

/etc/resolv.conf 似乎配置正确(名称服务器匹配kube-dns服务集群ip)。

$ kubectl exec -ti busybox -- cat /etc/resolv.conf
nameserver 10.39.240.10
search default.svc.cluster.local svc.cluster.local cluster.local europe-west3-a.c.cluster-a8e6d9e252b63e03.internal c.cluster-a8e6d9e252b63e03.internal google.internal
options ndots:5

展开
收起
k8s小能手 2018-12-29 15:40:02 2260 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    您的drone-server服务位于drone命名空间中,并且您正尝试从默认命名空间中查找nslookup。您还需要在命令中提供命名空间,如下所示:

    kubectl exec -ti busybox -- nslookup drone-server.drone
    这是因为您的busybox位于默认命名空间中,它试图在同一命名空间中查看drone-server。

    2019-07-17 23:24:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Kubernetes的网络实践 立即下载
基于OAM和Kubernetes 快速构建开放Serverl 立即下载
多租户Kubernetes实践-从容器运行时到SDN 立即下载

相关镜像