方法:
1.通过Ingress暴露
2.通过新建负载均衡SVC
通过ingress适用于http协议的暴露,基于7层来实现
负载均衡SVC适用于4层协议的暴露,比如nacos、es、数据库等
以下是我在工作当中的具体实践,现实需求是我们阿里云搭建了一套K8S集群,同时也想尝试阿里云的SAE服务,需要将我们的elasticsearch、redis、nacos进行对外暴露,让SAE也能访问K8S的服务,同时K8S也能访问自身的服务。
1.自己新建一个传统型负载均衡
2.进入K8S集群,新建服务,选择负载均衡
A.类型选择“负载均衡”
B.然后私网访问,如果是对外则选择公网访问
C.使用已有的SLB,注意这里不要新建,否则就不能一个负载均衡暴露多个TCP端口了
D.选择负载均衡实例,这里一定要选择“强制覆盖已有监听”,负责无法添加服务
E.外部流量策略: 这里是local和cluster; local的好处是可以拿到外部机器的真实IP,但是如果集群内的服务需要通过负载均衡IP则无法访问。cluster则在集群内部和外部都能通过负载均衡IP正常访问,但是无法获取机器的真实IP
G.选择对应的端口进行关联
PS:
开始用的模式是local,结果集群内访问
php74-55d6948f8c-5c2bk:/# curl 172.16.1.84:9200
curl: (7) Failed to connect to 172.16.1.84 port 9200 after 1004 ms: Couldn't connect to server
标签:负载,暴露,SVC,访问,集群,均衡,K8S From: https://blog.51cto.com/fengwan/5907384