Service 响应断断续续问题解决
问题描述:使用服务部署了一个任务,但是访问服务的 ClusterIP 不间断的得不到响应,但是这种直接访问任务的 pod IP,无这种情况
查看服务的 endpoints,会发现,服务的 endpoints 有多个,但是只有一个是部署的任务,其他两个是之前部署的测试任务(碰巧两个服务的 label 相同),因此在访问服务时,服务负载均衡的随机平均将请求发送到 任务 和非任务端口,所以得到的响应是断断续续的
Service
通过标签选择器(selector
)来决定它应当代理哪些 Pod。Service
会自动发现和管理这些匹配的 Pod,并生成 endpoints
来实现与这些 Pod 的连接。
Service
通过 selector
字段选择符合条件的 Pod(即拥有特定标签的 Pod)
根据 Service
的标签选择器来找出所有匹配的 Pod。每当 Service
发现有符合标签选择器条件的 Pod,它会自动创建一个 Endpoint
资源。这些 Endpoint
包含了 Pod 的 IP 地址和端口(通过 targetPort
指定)。 Endpoint
实际上就是 Service
后端 Pod 的网络地址
template.metadata.labels
用来指定新创建的 Pod 的标签
动态更新: Kubernetes 会动态监控 Pod 的状态。当 Pod 被创建、删除或发生其他变动时,Service
会根据标签选择器的匹配情况动态更新 endpoints
列表。
-nEjHGDWQ-1740642301157)]