Kubernetes 服务发现
目录 什么是服务发现? 环境变量 DNS 服务 Linux 中 DNS 查询原理 Kubernetes 中 DNS 查询原理 调试 DNS 服务 存根域及上游 DNS 什么是服务发现? 服务发现就是一种提供服务发布和查找的服务 ,是基于服务架构(SOA)的核心服务,需具备以下关键特性: 注册(Registration),新增服务到服务列表; 目录(Directory),即服务列表; 查找(Lookup),通过服务名找到服务。 服务发现的关键在于服务元数据(metadata)的存储 ,包括服务名、服务 IP、服务端口等信息。 Kubernetes 支持两种服务发现方式,环境变量和 DNS。 环境变量 当 Pod 创建时,Kubernetes 会将每个活跃的 Service 的相关环境变量设置到 Pod 中。 值得注意的是,这些环境变量不会因为相关 Service 改变而改变 (笔者亲手试验过)。 Kubernetes 会设置两类环境变量,分别是: Kubernetes Service 环境变量 Docker Link 环境变量 Kubernetes Service 环境变量形如(假定服务名为 latte,且访问端口为 8080): LATTE_SERVICE_HOST=10.100.251.57 LATTE_SERVICE_PORT=8080 Docker Link 环境变量形如