k8 - EndPoints

首先要注意名称,名称中有字母s,名称不能简写。

EndPoints 是 kubenetes 集群中的一个资源对象,存储在 etcd 中,用来记录一个 service 对应的所有 pod 的访问地址。

一个 service 由一组 pod 组成,这些 pod 通过 Endpoints 暴露出来,Endpoints 是实现实际服务的端点集合。换句话说,service 和 pod 之间的联系是通过 endpoints 实现的。

手动创建 EndPoints 的场景

需求:客户已经有一套 mysql 数据库,它部署在了宿主机上,需要 kubenetes 以 service 的方式进行托管,

手动创建 EndPoints,将 IP、端口 配置成本地的 mysql,这时候 k8s 就可以通过 service 调用到 mysql。

# Service定义 (mysql-local-service.yaml)
apiVersion: v1
kind: Service
metadata:
  name: mysql-local
spec:
  ports:
  - port: 3306
  type: ExternalName
  externalName: mysql-host.default.svc.cluster.local
 
# Endpoints定义 (mysql-local-endpoints.yaml)
apiVersion: v1
kind: Endpoints
metadata:
  name: mysql-local
subsets:
  - addresses:
      - ip: "你本地MySQL服务器的IP"
    ports:
      - port: 3306

posted on 2019-08-25 23:21  疯狂的妞妞  阅读(135)  评论(0编辑  收藏  举报

导航