适用场景
普通且简单的 7 层协议负载均衡,Web 路由服务,容器集群内服务之间 7 层协议互相访问的通信代理和负载均衡。
原理
如下图所示,当您新建一个集群的时候,会默认给这个集群分配一个负载均衡实例。该负载均衡实例会将集群中的所有节点加入作为后端,同时前端会暴露 80 端口,后端所有节点的机器会暴露 9080 端口。容器服务会启动一个路由应用acsrouting,即阿里云容器服务路由应用(Alibaba Cloud Container Service Routing)。该路由应用只有一个服务,即路由服务。该服务是全局(global)的,即每个节点(下面说到的主机和节点都是同一个意思,即 ECS 的 vm 实例)都部署了该服务(或者说镜像)的一个拷贝,也就是容器。每个节点都由这个容器用来路由 HTTP 服务或者 HTTPS 服务。
如上图所示,HTTP 服务,负载均衡实例的前后端端口的映射为 80:9080,主机与路由容器之间的端口映射为 9080:80,即路由的容器暴露 80 端口,其它用作 Web 服务的容器可以暴露任意的端口。只要在容器启动的时候设置主机和容器端口的映射,routing 服务就能获取到相应的端口进行请求的路由。有关暴露 HTTP 服务的完整示例,参见
通过镜像创建 Nginx。
设置方式
说明
请务必确保容器服务相关节点的内核参数(/etc/sysctl.conf)中,如下配置值为 0,否则可能会导致无法访问:
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
通过容器服务管理控制台进行设置
通过 服务 > 变更配置 进行设置
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。