假设我在某个 Cloud 服务上部署了CoreOS集群 .
现在,我有4台运行node.js应用程序的机器,它遵循所有12因素原则和一台带Couchbase的机器 .
在这种情况下,负载均衡如何工作?作为负载均衡器,ONE ip最终会不会用完果汁,或者这几乎是不可能的?我在哪里指出DNS才能正常工作?
在过去,我有一个IPIN与NGINX的前期,然后指导传入的请求循环风格 .
如何在 Cloud 服务上使用CoreOS?
有不同的方法来实现这样的任务 . 通常,在基础架构,集群或数据中心之前应该有 Cloud 服务负载 balancer 器 . 您将处理两层或三层架构 .
DNS指向面向 Cloud 的面向负载的负载均衡器,负载均衡器在任何情况下都管理客户端层 . 对于AWS,它必须通过CNAME记录 .
每个层的自动可扩展组可能会降低基础架构可用性降低的风险 . 然后,如果需要从bootstrap阶段进行配置,则通过cloud-config配置Nginx实例 .
双层架构(您的场景)
您需要什么:
Nginx实例集群(客户端层)
数据库集群(数据层)
每个Nginx实例都侦听HTTP端口并使用上游进行路由(取决于您的NodeJS应用程序分发) . 服务发现是通过etcd,使用Registrator SkyDNS / Consul或Weaver实现的,因此Nginx解析器可以由这些工具提供的内部DNS替换而不是上游 .
三层架构
应用程序集群(业务层)
这同样适用于Nginx实例和两层,尽管客户端层解决了业务层应用程序(使用内部 Cloud 负载均衡器)以及本地包含的单元 . 业务层的行为与两层架构中的客户端类似,但考虑到安全组的正确配置 .
对于这两种情况,数据层形成独立区域(SkyDNS)或数据中心(Consul) . 此外,您最终可以跳过Nginx,但您需要公开在安全组中打开更多端口 .
从以下方面收集知识:
https://github.com/jwilder/nginx-proxy
https://github.com/marceldegraaf/blog-coreos-1
我能够 Build :
TODO: Consul 版 . 虽然有SkyDNS和Ambassadord的例子 .
参考文献:
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/vpc-loadbalancer-types.html
http://www.softwaretestingclass.com/what-is-difference-between-two-tier-and-three-tier-architecture/
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/USVPC_creating_basic_lb.html
http://weaveblog.com/2014/10/28/running-a-weave-network-on-coreos/
http://www.livewyer.com/blog/2015/02/05/service-discovery-docker-containers-using-consul-and-registrator
http://sysmagazine.com/posts/215653/
**请告诉我你的意见 .
1 回答
有不同的方法来实现这样的任务 . 通常,在基础架构,集群或数据中心之前应该有 Cloud 服务负载 balancer 器 . 您将处理两层或三层架构 .
DNS指向面向 Cloud 的面向负载的负载均衡器,负载均衡器在任何情况下都管理客户端层 . 对于AWS,它必须通过CNAME记录 .
每个层的自动可扩展组可能会降低基础架构可用性降低的风险 . 然后,如果需要从bootstrap阶段进行配置,则通过cloud-config配置Nginx实例 .
双层架构(您的场景)
您需要什么:
Nginx实例集群(客户端层)
数据库集群(数据层)
每个Nginx实例都侦听HTTP端口并使用上游进行路由(取决于您的NodeJS应用程序分发) . 服务发现是通过etcd,使用Registrator SkyDNS / Consul或Weaver实现的,因此Nginx解析器可以由这些工具提供的内部DNS替换而不是上游 .
三层架构
您需要什么:
Nginx实例集群(客户端层)
应用程序集群(业务层)
数据库集群(数据层)
这同样适用于Nginx实例和两层,尽管客户端层解决了业务层应用程序(使用内部 Cloud 负载均衡器)以及本地包含的单元 . 业务层的行为与两层架构中的客户端类似,但考虑到安全组的正确配置 .
对于这两种情况,数据层形成独立区域(SkyDNS)或数据中心(Consul) . 此外,您最终可以跳过Nginx,但您需要公开在安全组中打开更多端口 .
从以下方面收集知识:
https://github.com/jwilder/nginx-proxy
https://github.com/marceldegraaf/blog-coreos-1
我能够 Build :
TODO: Consul 版 . 虽然有SkyDNS和Ambassadord的例子 .
参考文献:
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/vpc-loadbalancer-types.html
http://www.softwaretestingclass.com/what-is-difference-between-two-tier-and-three-tier-architecture/
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/USVPC_creating_basic_lb.html
http://weaveblog.com/2014/10/28/running-a-weave-network-on-coreos/
http://www.livewyer.com/blog/2015/02/05/service-discovery-docker-containers-using-consul-and-registrator
http://sysmagazine.com/posts/215653/
**请告诉我你的意见 .