【发布时间】:2021-03-06 00:00:35
【问题描述】:
我是 Kubernetes 新手。 如果使用具有 4 个副本 A、B、C、D 的 EKS 部署任何服务。 通常负载均衡器将请求定向到这些副本 但是,如果我希望我的请求只发送到副本 A 或 B... 我们怎样才能实现它。 请求分享一些链接或步骤以获取指导
【问题讨论】:
标签: spring-boot kubernetes microservices devops amazon-eks
我是 Kubernetes 新手。 如果使用具有 4 个副本 A、B、C、D 的 EKS 部署任何服务。 通常负载均衡器将请求定向到这些副本 但是,如果我希望我的请求只发送到副本 A 或 B... 我们怎样才能实现它。 请求分享一些链接或步骤以获取指导
【问题讨论】:
标签: spring-boot kubernetes microservices devops amazon-eks
你可以使用Headless Services:
有时您不需要负载平衡和单个服务 IP。在 在这种情况下,您可以通过以下方式创建所谓的“无头”服务 为集群 IP (
.spec.clusterIP) 明确指定"None"。您可以使用无头服务与其他服务交互 发现机制,不依赖于 Kubernetes 实施。
对于无头
Services,不分配集群IP,kube-proxy 不处理这些服务,并且没有负载平衡或 由平台为他们完成代理。 DNS 是如何自动生成的 配置取决于 Service 是否定义了选择器:
- 带选择器
对于定义选择器的无头服务,端点控制器 在 API 中创建 Endpoints 记录,并修改 DNS 配置返回直接指向
Pods支持Service。
- 没有选择器
对于没有定义选择器的无头服务,端点 控制器不会创建
Endpoints记录。然而,DNS 系统查找并配置:
ExternalName-type 服务的 CNAME 记录。
与服务共享名称的任何
Endpoints的记录,适用于所有其他类型。
因此,Headless service 与默认 ClusterIP service 相同,但没有负载平衡或代理,因此允许您直接连接到 Pod。
您还可以参考以下指南以获得更多帮助:
【讨论】: