在Kubernetes中,endpoints是一种资源对象,用于表示一个服务的网络终点,即该服务所代表的一组Pod IP和端口。Endpoints对象通常由Kubernetes控制面板自动创建和更新,以确保Service能够正确地路由到后端Pod。
当一个Service创建后**,Kubernetes会为该Service自动创建一个Endpoints对象**,并将与该Service相匹配的Pod IP和端口信息添加至Endpoints对象中。Kubernetes会动态地更新Endpoints对象,以确保该对象所包含的Pod IP和端口信息始终是最新的。
在Service路由流量时,它将检查Endpoints对象中存储的IP和端口信息,并将流量转发至这些IP和端口上运行的Pod。这使得服务路由变得更为灵活和动态,并且能够处理动态变化的Pod集合。
应用场景, pod 管理的应用 访问 外部资源mysql 的时候,可以使用 endpoints 来进行路由管理
Endpoints对象包括以下属性:
-
Subset:表示Endpoints的子集,可以根据Label Selector筛选出想要的Pod IP和端口。
-
Address:Pod的IP地址。
-
Target Port:Pod的容器端口。
cat 01-ep.yaml
apiVersion: v1
kind: Endpoints
metadata:
name: baimei-ep-es-cluster
# 配置endpoints后端的IP地址及端口
subsets:
# 配置IP地址
- addresses:
- ip: 10.0.0.101
- ip: 10.0.0.102
- ip: 10.0.0.103
# 配置端口
ports:
- port: 9200
name: http
- port: 9300
name: tcp
案例:
实战: mysql 单独部署在集群外部250节点。
然后K8s 集群内部的tomcat 可是访问 250
k8s endpoints tomcat实战案例 : 连接