svc与ep的关系与使用场景
svc与ep的关系与使用场景
赵洲洋Kubernetes Service (SVC) 和 Endpoints (EP) 概述
Service (SVC)
定义
Service 是 Kubernetes 中用于暴露应用的一个抽象方式,定义了如何访问一组特定的 Pod。
主要类型
- ClusterIP:仅在集群内部可访问的内部 IP。
- NodePort:在集群的所有节点上打开一个端口,允许从集群外部访问。同时仍然有内部IP与端口。
- LoadBalancer:集成外部负载均衡器。
作用
- 提供 Pod 的稳定 IP 地址和端口号。
- 支持多种访问方式,如仅限集群内或集群外访问。
- 实现 Pod 的服务发现和负载均衡。
Endpoints (EP)
定义
Endpoints 是 Kubernetes 中的一个资源对象,定义了访问 Service 的一组网络地址。
功能
- 包含一组 Pod 的 IP 地址和端口号,这些 Pod 被 Service 选择,注意是一组。
- 是实现负载均衡和服务发现的关键。
关系和相互作用
- 一对一关系:每个 Service 通常对应一个 Endpoints 对象,通过一样的名称来一一对应。
- Service 通过标签选择器来选择 Pod,Endpoints 对象反映了这些 Pod 的实际网络地址。
- Endpoints 对象通常是自动创建的,根据 Service 的配置和 Pod 的实际状态更新。
- 也可以手动创建一个同名的svc和ep,ep中指定外部地址,来做到通过内部svc的名称访问外部服务。
使用场景
- ClusterIP:适用于只需要在 Kubernetes 集群内部进行服务间通信的场景。
- NodePort:适用于需要从集群外部访问服务的情况。
注意事项
- 确保 Service 的
targetPort
与 Pod 上的实际端口一致。 - 避免手动编辑 Endpoints 对象,让 Kubernetes 根据实际情况自动管理。
具体使用
- service中指定名称(name),监听端口号(port),转发端口号(targetPort)
- ep指定名称(name)一组pod的地址(ip)和pod的端口号(port)
评论
匿名评论隐私政策