智能
助手
最大化  清空记录 停止  历史记录
翻译选中文本
选中一段文本后进行翻译
名词解释
选中一段文本后进行名词解释
知识图谱生成
通过图谱展示知识信息
登录用户在知识浏览页面可用
答案生成
AI自动回答一个问答功能中的问题
登录用户在问答浏览页面,且问题开放回答中可用
知识摘要
自动为当前知识生成摘要
知识浏览页面可用
知识问答
针对当前知识进行智能问答
知识浏览面可用
2026-01-21 20:48:44 版本 : 6.8.7 ep(Endpoints)存储 Service 后端 Pod 网络端点(IP:Port)案例
作者: 文艺范儿 于 2026年01月21日 发布在分类 / Docker & K8S / K8S基础 下,并于 2026年01月21日 编辑
 历史版本

备注 修改日期 修改人
创建版本 2026-01-21 20:48:44[当前版本] 文艺范儿

6.8.7 ep(Endpoints)存储 Service 后端 Pod 网络端点(IP:Port)案例

简介

Endpoints(缩写 ep )是 Kubernetes 中用于存储 Service 后端 Pod 网络端点(IP:Port) 的资源对象。它与 Service 一一对应,记录了 Service 选择器匹配的 Pod 的 IP 地址和端口信息。

Endpoints(缩写 ep )在v1.33+中已弃用; 建议使用discovery.k8s.io/v1 EndpointSlice 。

  • 核心作用
    • 存储 Service 的后端端点列表,供 kube-proxy 生成网络转发规则(iptables/IPVS)。
    • 供 CoreDNS 实现 DNS 服务发现(A 记录解析到 ClusterIP,再通过 ep 找到后端 Pod)。
  • 资源类型v1.Endpoints(属于 coreAPI 组,无需指定 apiVersion: v1即可使用)。

Service 和 Endpoints是 绑定关系:

  • Service通过 spec.selector选择 Pod,但不直接存储 Pod 的 IP。
  • Endpoints资源名称通常与 Service相同(除非手动指定),由 kube-controller-manager中的 Endpoint 控制器 自动维护。
  • 当 Pod 创建/销毁/就绪状态变化时,Endpoint 控制器会更新对应的 Endpoints资源。

案例1:自定义ep资源实现K8S集群外部地址映射

# 1.创建svc和ep

[root@k8s-master-01 ~]# vim ep-external-db-mysql.yaml
[root@k8s-master-01 ~]# cat ep-external-db-mysql.yaml
apiVersion: v1
kind: Service
metadata:
  name: external-db-mysql
spec:
  ports:
  - port: 53306
    targetPort: 53306
  # 不指定 selector,需要手动关联 Endpoints

---

apiVersion: v1
kind: Endpoints
metadata:
  name: external-db-mysql  # 必须与 Service 同名
subsets:
- addresses:
  - ip: 192.168.1.250  # 外部数据库 IP
    hostname: db-mysql
  ports:
  - port: 53306
    protocol: TCP

# 2. 部署
[root@k8s-master-01 ~]# kubectl apply -f ep-external-db-mysql.yaml

# 3. 验证
[root@k8s-master-01 ~]# kubectl get ep external-db-mysql
external-db-mysql   192.168.1.250:53306   85s
[root@k8s-master-01 ~]# kubectl describe -f  ep-mysql.yaml
历史版本-目录  [回到顶端]
    文艺知识分享平台 -V 5.2.5 -wcp