K8S服务发现(kube-dns)

K8S中,Pod如果想也另外一个Pod通信,通常不会直接基础此Pod的IP(动态的),也不会记住此Pod形成的Service的IP(相对比较稳定,但也是动态的), 因为IP不好记,通常情况是通过其对应的Service名字来访问的。那么就需要一个服务,能够把Service的名字翻译为IP,此服务就是kube-dns。

目前K8S的kube-dns通常使用 CoreDNS, 运行在Master Node上。CoreDNS解析所有的Service的名字到期Service IP。CoreDNS本身有一个ClusterIP的Service,其后有多个Backend的pod。如下图:

kubedns service discovery

1、kubernetes的 Service Name被解析成其ClusterIP(是服务网络中的IP,是内部的,不是Node的外部地址)。

2、每个K8s网络在安装的时候指定一个Cluster Domain, 默认是:cluster.local

3、K8S中每个namespace对应一个子域

例如,默认的container的 /etc/resolv.conf:

`# cat /etc/resolv.conf`

`nameserver <kube-dns ClusterIP>`

`search <namespace>.svc.<cluster_domain> svc.<cluster_domain> <cluster_domain> <additional ...>`

`options ndots:``5`

如果搜索一个服务名字,例如account-service, 会自动带上.svc.<cluster_domain>, 这样就会默认搜索和自己再同一个namespace里面的服务名字。 如果你知道你的服务在不同的namespace里面,就可以加上namespace,例如搜索 account-service.prod,会搜索prod下的account-service.

kubedns with namespace

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiphi1978

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值