谷歌云平台上的 Docker Swarm 无法运行

谷歌云平台上的 Docker Swarm 无法运行

我正在尝试配置一个示例 docker swarm 来在 google cloud platform 上运行我的微服务。问题是,当我按照 pluralsight 中的步骤完成操作后,我无法从我输入的指定端口访问该服务。

我首先通过每个 google 计算引擎的控制台安装了 docker 和 docker swarm。

我如何配置防火墙:

我创建了一个新的防火墙规则,其中指定了过滤范围:0.0.0.0/0目标标签为:docker-managerdocker-worker(我的谷歌云计算引擎实例)。

我如何配置docker swarm manager:

我运行了以下命令:sudo docker swarm init --advertise-addr 10.128.0.2:2377 --listen-addr 0.0.0.0:2377

广告地址是谷歌云引擎中的内部IP

我如何配置 Swarm 工作进程的加入节点:

我运行了以下命令:sudo docker swarm join --token SWMTKN-1-56672dd646yhdx7n1t62tmegakwxbvzc0kgj366otmdu5da086-eis4e8xqqgn1tn5iwxtdoy8he 10.128.0.2:2377 --advertise-addr ens4:2 377 --listen-addr 0.0.0.0:2377

我如何创建这项服务:

我运行了以下命令:sudo docker 服务创建 --name psight1 -p 8080:8080 --replicas 5 nigelpoulton/pluralsight-docker-ci

但是当我通过 google cloud engines 的外部 IP 的 8080 端口访问该服务时,它说无法访问。我不明白。

答案1

防火墙规则包含 3 个主要部分:源、目标和要允许的端口。您提到指定了 0.0.0.0/0 的范围以及目标标签 docker-manager 和 docker-worker。

1) “目标标签”是指网络标签。这不是您的虚拟机实例的名称,该标签是网络标签已将其添加到您的 VM。

2) 您必须打开所有端口或选择指定的端口和/或协议。确保允许端口 8080 上的流量。不建议将源过滤器设置为 0.0.0.0/0 并打开所有端口,因为这存在安全风险。

最后,您可以通过使用内部 IP 地址(而不是外部 IP 地址)从一个实例连接到您的服务来确保服务正常运行,只是为了确保服务配置正确并运行。

相关内容