首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes集群中的DNS地址

kubernetes集群中的DNS地址
EN

Stack Overflow用户
提问于 2018-04-22 22:38:00
回答 1查看 881关注 0票数 1

我跟踪这个kubernetes教程是为了建立一个DNS service,并将两个独立的kubernetes pods连接在一起。其中一个应该充当网关,它正在监听端口80,另一个在端口90上。

当我使用他们的节点IP,curl 10.32.0.24curl 10.32.0.25:90时,我可以联系到他们。尽管如此,我还是想不出如何通过我的DNS服务来访问它们。URL会是什么?

Namespacedefault,这是kubectl cluster-info: Kubernetes master is running at IP_OF_MY_SERVER:6443 KubeDNS is running at IP_OF_MY_SERVER:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy My deployment.yaml的结果,与本教程中的几乎相同:

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: default-subdomain
spec:
  selector:
    name: busybox
  clusterIP: None
  ports:
  - name: foo # Actually, no port is needed.
    port: 80
    targetPort: 80
---
apiVersion: v1
kind: Pod
metadata:
  name: busybox1
  labels:
    name: busybox
spec:
  hostname: busybox-1
  subdomain: default-subdomain
  containers:
  - image: time-provider
    name: busybox
---
apiVersion: v1
kind: Pod
metadata:
  name: busybox2
  labels:
    name: busybox
spec:
  hostname: busybox-2
  subdomain: default-subdomain
  containers:
  - image:  gateway
    name: busybox
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-23 12:38:03

Kubernetes DNS服务在集群中工作,并为pods提供DNS名称,而不是为外部服务提供DNS名称。

下面是您使用的说明的摘录:

在集群中定义的每个服务(包括DNS服务器本身)都被分配一个DNS名称。默认情况下,客户端Pod的DNS搜索列表将包括Pod自己的命名空间和集群的默认域。最好的例子是: 假设在Kubernetes命名空间foo中有一个名为bar的服务。在命名空间bar中运行的Pod只需为foo执行一个DNS查询就可以查找此服务。在命名空间quux中运行的Pod可以通过对foo.bar执行DNS查询来查找此服务。

因此,集群中资源的DNS名称仅存在于集群中。

您可以通过NodeIP:curl 10.32.0.24curl 10.32.0.25:90从外部网络调用服务。这是一种正确的方式。如果要使用DNS名称从外部连接到群集,则应使用任何其他DNS服务将名称指向群集节点或LoadBalancer。

我建议您使用Service对象公开应用程序。这里有一些关于它的文章:连接方式使用服务访问应用程序。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49971397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档