Kubernetes 服务发现与 Ingress 负载均衡实践
1. 基于 DNS 的服务发现
在 Kubernetes 中,服务发现是一个重要的环节,除了通过环境变量发现服务外,还可以通过集群的内部 DNS 服务来发现服务。对于运行在不同命名空间的 Pod 来说,这是发现服务的唯一选择。
1.1 DNS 服务发现原理
服务名称会作为 DNS 主机名暴露出来,因此可以直接对服务名进行 DNS 查找。例如,使用 robohash-internal 进行 DNS 查找,或者在 HTTP 路径中使用 http://robohash-internal ,它会自动解析。当从其他命名空间调用服务时,需要追加命名空间,如 robohash-internal.default 用于调用默认命名空间中的 robohash-internal 服务。
1.2 DNS 服务发现的优缺点
| 优点 | 缺点 |
|---|---|
| 可以从集群的任何命名空间调用 | 解析 IP 地址的速度比使用环境变量稍慢,因为需要进行网络请求 |
| 没有顺序依赖 | 依赖内部 DNS 服务 |
1.3 示例代码
以下是一
超级会员免费看
订阅专栏 解锁全文
37

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



