在Kubernetes(K8s)中,Endpoint是一种资源对象
,用于表示一个Service所依赖的真实后端节点的Pod信息。
它存储了一组IP地址
和端口号
的列表 ,这些IP地址和端口号对应着提供相同服务的Pod实例
。
主要作用
Endpoint的主要作用是将Service与后端Pod实例进行关联 ,以便实现负载均衡 和流量路由。
当一个Service被创建时,K8s会自动为其关联一个Endpoint资源对象,并将该Service所选择的Pod的IP地址和端口信息填充到Endpoint中。
这样,当有请求发送给Service时,K8s会根据Service的配置将请求转发到对应的Endpoint上的Pod实例。
Endpoint资源对象包含以下重要字段:
-
subsets:一个或多个subset对象,每个subset中包含一组IP地址和端口号的列表。不同的subset可以根据Label Selector将后端Pod进行分类。
-
addresses:一个IP地址列表,表示属于该Endpoint的Pod的IP地址。
-
ports:一个端口号列表,表示属于该Endpoint的Pod所开放的端口号。
通过使用Endpoint资源对象,Kubernetes可以动态 地管理后端Pod实例的地址 和端口信息。
这样,当后端Pod的数量发生变化、新的Pod加入或旧的Pod删除时,Kubernetes会及时更新 Endpoint中的信息,保持负载均衡 和流量路由的正确性。
总结来说,Endpoint是Kubernetes中用于关联Service
与后端Pod实例
的资源对象,存储了一组IP地址
和端口号
的列表
。