【问题标题】:request with single ip or dnsname to multi node docker swarm cluster使用单个 ip 或 dnsname 向多节点 docker swarm 集群请求
【发布时间】:2019-10-05 11:40:45
【问题描述】:

我想让 High 服务可用。但是,我不知道如何从集群外部使用单个 ip 或 dns 名称向集群服务发出请求。

我试过 --endpoint-mode dnsrr。但我认为这不是为了外部请求平衡。我必须使用反向代理还是外部负载均衡器。我可以用软件制作而且便宜。我希望帮助我。谢谢你。

【问题讨论】:

  • Ingress 将在集群的每个节点上运行。这些入口中的每一个都将对所有节点的请求进行负载平衡。如果您需要有一个入口点,则必须使用反向代理将其传递到入口端点。您可以使用 haproxy 或 nginx。

标签: docker load-balancing reverse-proxy docker-swarm internal-load-balancer


【解决方案1】:

使用docker service update 命令的--publish-add 参数将docker swarm 服务的端口映射到主机VM 端口。然后使用主机ip和端口访问服务。

您也可以使用--publish host_vm_port:service_port 语法create 使用已发布端口的服务。 例如:

docker service create --name my_web --replicas 3 --publish 8080:80 nginx

将创建具有 3 个副本的 docker swarm 服务 nginx,其中 nginx 端口 80 映射到主机 VM 8080 端口。然后您的软件客户端可以使用 [vm_ip:80/service_url] url 访问服务

【讨论】:

【解决方案2】:

我知道这是一个老问题,但根据您的设置,您也许可以使用keepalived。它允许您定义一个静态的虚拟 IP,只要还有一台机器在运行,它就会始终指向您的一台机器。

【讨论】:

    猜你喜欢
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    相关资源
    最近更新 更多