Files
k8s-note/k8s知识笔记/三、service/7、Endpoint.conf
2025-10-16 23:18:49 +08:00

27 lines
1.8 KiB
Plaintext

一、Endpoint 与 Service 和 Pod 的关系
Kubernetes中的Service, 它定义了一组Pods的逻辑集合和一个用于访问它们的策略。
一个Service的目标Pod集合通常是由Label Selector来决定的。
Endpoints是一组实际服务的端点集合。
一个Endpoint是一个可被访问的服务端点,即一个状态为running的pod的可访问端点。
一般Pod都不是一个独立存在,所以一组Pod的端点合在一起称为EndPoints。
只有被Service Selector匹配送选中并且状态为Running的才会被加入到和Service同名的Endpoints中。
创建service时, 会自动创建一个和service同名的endpoints对象, 该对象中包含了所有匹配service selector的pod的IP地址和端口信息。
例如, 假设有一个名为my-service的Service, 它的selector是app=my-app。
如果有两个Pod, 分别是pod-1和pod-2, 它们都有标签app=my-app, 并且它们都在运行状态。
那么, Kubernetes会自动创建一个名为my-service的Endpoints对象, 其中包含pod-1和pod-2的IP地址和端口信息。
Service通过Endpoints对象来实现负载均衡和服务发现。
当客户端请求Service时, Kubernetes会从Endpoints对象中选择一个Pod的IP地址和端口, 并将请求转发给该Pod。
这样, 客户端就可以通过Service来访问一组Pod, 而不需要知道它们的具体IP地址。
Endpoint的类型
Endpoint对象中的每个端点都包含了Pod的IP地址和端口信息。
这些端点可以是IPv4地址, IPv6地址, 或者是主机名。
端点还可以包含一些元数据, 例如Pod的名称, 命名空间, 和标签等。
自动关联: 当创建一个Service时, Kubernetes会自动创建一个与该Service同名的Endpoints对象。
手动创建: 也可以手动创建Endpoints对象, 并将其与Service关联起来。