需求
在k8s中各服务之间通过内部域名【服务名.namespace】的形式进行调用非常方便, 但是容器集群内的服务如何调用部署在集群外的中间件,比如外部的数据库服务,redis服务等。k8s的Service 可以通过独立配置Endpoints的方法,直接代理外部服务并支持代理多个端口。
实现方式
1.单独创建Endpoints(多个端口)
kind: Endpoints
apiVersion: v1
metadata:
name: mysql-proxy
namespace: mysql
subsets:
- addresses:
- ip: 192.168.1.2 # 外部服务的IP列表
- ip: 192.168.1.3
ports:
- name: fuwu1 # 外部服务的端口列表,与Service中映射的