前言
在这里,你将了解 Kubernetes 集群如何实现通过服务名,进行服务发现,负载均衡,调用后端服务。
这里,我们以服务名为ticknet为例,假设我们要访问内部服务ticknet的某个http接口,则,我们的请求链接格式可以是:http://ticknet/get/user/10000
目录
- kube-dns服务发现原理
- kube-proxy实现负载均衡
- 总结
- 参考
1. kube-dns服务发现原理
DNS:我们非常熟悉且最简单的一种方式,跟域名和IP映射的原理类似,我们可以将服务域名名称和一到多个机器IP进行关联或者是一个负载均衡器(指向服负载均衡好处是可以避免失效DNS条目问题)。DNS的服务发现方式最大的优点就是它是一种大家熟知的标准形式,技术支持性好。缺点就是当服务节点的启动和销毁变得更加动态时DNS更新条目很难做到高可用和实时性。
K8S选择的是DNS作服务发现,除此之外,感兴趣还可以了解Zookeeper、Consoul、Doozerd、Eureka、Etcd
注意:Etcd在k8s集群中的作用是用于保存集群所有的网络配置和对象的状态信息。如果etcd需要实现负载均衡,需要与第三方工具结合,常与Registrator(通过检查容器在线或停止来完成相关服务数据的注册和更新)和Confd(为轻量级的配置管理工具通过储存在Etcd中的数据来保持配置文件的最新状态)结合。
a. kube-dns原理
- kube-dns组成

本文详细介绍了Kubernetes如何通过服务名进行服务发现,重点解析了kube-dns的工作原理,包括DNS域名配置和K8S自动配置域名解析,并深入探讨了kube-proxy在负载均衡中的角色,特别是iptables的负载均衡实现方式。

838

被折叠的 条评论
为什么被折叠?



