[Kubernetes]如何通过服务名发现服务? kube-proxy 和 kube-dns 原理解密

前言

在这里,你将了解 Kubernetes 集群如何实现通过服务名,进行服务发现,负载均衡,调用后端服务。
这里,我们以服务名为ticknet为例,假设我们要访问内部服务ticknet的某个http接口,则,我们的请求链接格式可以是:http://ticknet/get/user/10000

目录

  • kube-dns服务发现原理
  • kube-proxy实现负载均衡
  • 总结
  • 参考

1. kube-dns服务发现原理

DNS:我们非常熟悉且最简单的一种方式,跟域名和IP映射的原理类似,我们可以将服务域名名称和一到多个机器IP进行关联或者是一个负载均衡器(指向服负载均衡好处是可以避免失效DNS条目问题)。DNS的服务发现方式最大的优点就是它是一种大家熟知的标准形式,技术支持性好。缺点就是当服务节点的启动和销毁变得更加动态时DNS更新条目很难做到高可用和实时性。

K8S选择的是DNS作服务发现,除此之外,感兴趣还可以了解ZookeeperConsoulDoozerdEurekaEtcd
注意:Etcd在k8s集群中的作用是用于保存集群所有的网络配置和对象的状态信息。如果etcd需要实现负载均衡,需要与第三方工具结合,常与Registrator(通过检查容器在线或停止来完成相关服务数据的注册和更新)和Confd(为轻量级的配置管理工具通过储存在Etcd中的数据来保持配置文件的最新状态)结合。

a. kube-dns原理

  • kube-dns组成
    在这里插入图片描述
    etcd存储SkyDNS需要的各种数据;kube2sky是数据写入方;skydns是数据读入方;execheathz是辅助容器,有健康检查作用。
  • 域名格式
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值