Kubernetes 访问集群外部服务

2020-02-27  本文已影响0人  香菜香菜我是折耳根

使用 Endpoints

什么是 Endpoints ?

简单来说,Endpoints 表示一个 Service 对应的所有 Pod 副本的访问地址,而 Endpoints Controller 就是负责生成和维护所有 Endpoints 对象的控制器。它负责监听 Service 、和对应的 Pod 副本的变化,如果检测到 Service 被删除,则删除和该 Service 同名的 Endpoints 对象。如果检测到新的 Service 被创建或者修改则根据该 Service 信息获得相关的 Pod 列表,然后创建或者更新 Service 对应的 Endpoints 对象。

endpoints.yaml :

kind: Endpoints
apiVersion: v1
metadata:
  name: mysql-dev
  namespace: development
subsets:
  - addresses:
      - ip: 192.168.31.11
    ports:
      - port: 3306

service.yaml :

apiVersion: v1
kind: Service
metadata:
  name: mysql-dev
  namespace: development
spec:
  ports:
    - port: 3306
      targetPort: 3306
      protocol: TCP
kubectl apply -f endpoints.yaml
kubectl apply -f service.yaml

如果需要查看该 Service 的详情,包括 Endpoints :

kubectl describe svc mysql-dev -n development

那么在应用的配置文件里,可以直接将 IP 地址或域名替换为 mysql-dev

上一篇下一篇

猜你喜欢

热点阅读