00000233
Endpoints(缩写 ep )是 Kubernetes 中用于存储 Service 后端 Pod 网络端点(IP:Port) 的资源对象。它与 Service 一一对应,记录了 Service 选择器匹配的 Pod 的 IP 地址和端口信息。
Endpoints(缩写 ep )在v1.33+中已弃用; 建议使用discovery.k8s.io/v1 EndpointSlice 。
v1.Endpoints(属于 coreAPI 组,无需指定 apiVersion: v1即可使用)。Service 和 Endpoints是 绑定关系:
Service通过 spec.selector选择 Pod,但不直接存储 Pod 的 IP。Endpoints资源名称通常与 Service相同(除非手动指定),由 kube-controller-manager中的 Endpoint 控制器 自动维护。Endpoints资源。# 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