Kubernetes实战(二十七)-集群访问外部服务(Endpoints)

281 阅读1分钟

Kubernetes 访问内网集群外独立的服务,由于不在相同的网段(容器内的网段是独立的)所以不能够互相访问通信,这种情况下我们可以创建 Kubernetes 的 Endpoints 资源,将外部服务映射为集群的内部服务进行访问通信。

在实际的生产环境使用中,通过分布式存储来实现的磁盘在 Mysql 这种IO密集性应用中,性能问题会显得非常突出。所以在实际应用中,一般不会把 Mysql 这种应用直接放入 Kubernetes 中管理,而是使用专用的服务器来独立部署,而像 Web 这种无状态应用依然会运行在 Kubernetes 中,这个时候 Web 服务器要连接 Kubernetes 集群外的数据库,有两种方式:

  • 直接连接数据库的外网 IP 地址
  • 创建 Endpoints 将外部服务映射为集群内部服务

下面分别列举 Elasticsearch、Mysql、PostgreSQL、Redis、Nginx 的 Endpoints 配置方法,希望大家能通过这几个示例学习到 Endpoints 的使用方法。

1、Elasticsearch 配置

Elasticsearch EndPoints 资源文件,内容如下:

apiVersion: v1
kind: Endpoints
metadata:
  name: elasticsearch
  namespace: oas-dev
subsets:
 - addresses:
    - ip: 10.12.1.203
   ports:
    - name: es0