概念
Kubernetes 中的 Service,它定义了一组Pods的逻辑集合和一个用于访问它们的策略。一个 Service 的目标 Pod 集合通常是由Label Selector 来决定的。
Endpoints 是一组实际服务的端点集合。一个 Endpoint 是一个可被访问的服务端点,即一个状态为 running 的 pod 的可访问端点。一般 Pod 都不是一个独立存在,所以一组 Pod 的端点合在一起称为 EndPoints。只有被 Service Selector 匹配选中并且状态为 Running 的才会被加入到和 Service 同名的 Endpoints 中。
Pod 是 Kubernetes中能够创建和部署的最小单元,是 Kubernetes 集群中的一个应用实例,关于 Pod 似乎也没什么需要特别说明的。
注:只有配置了 selector 的 service 才会自动创建一个同名的 endpoints,没有配置 selector 的 service 不会产生 endpoints 资源对象。
关系拓扑图
Service、Endpoint 和 Pod 的关系(下图)
自动关联体系内 Pod 服务(下图):
手工维护体系外的外部服务(下图):
常用命令
# 示例:查看名为 rancher 的 Service 描述信息(里面也可以看到 EndPoint 信息)
kubectl describe svc rancher -n cattle-system
# 示例:查看所有 endpoints
kubectl get endpoints -A
# 示例:查看名为 rancher 的 endpoint 描述信息(在 k8s 里 endpoint 的名字和 Service 的名字是一样的)
kubectl describe endpoints rancher -n cattle-system
# 示例:编辑 endpoint 配置(endpoint 可以简写为 ep,好比 service 常常简写为 svc 一样)
kubectl edit ep rancher -n cattle-system
# 还有 kubect 的 get、delete 等命令也同样适用于 endpoint
(END)