Consul 用于 docker swarm 上的服务发现

问题描述 投票:0回答:1

我知道这可能是一个旧的讨论项目。然而,我还没有找到任何合适的文件来回答我的疑问

背景 我们有 18 台虚拟机运行整体应用程序和数据库。 12 个应用程序有可能迁移到新的 3 节点 docker swarm 设置 (docker ce)。该群部署在气隙环境中,因此使用私有注册表和图像。该网络严重依赖本地 AD 来进行现有服务命名。其他 4 个 VM 基础设施中混合有其他 VM(16 个物理服务器运行 48 个 VM,主要是 Windows、BSD 和 Solaris)。网络是 10g 端到端(如果这有帮助的话),当前高峰时段的利用率约为 3%。这里不提出 DMZ,因为这个 docker swarm 的扩展也将为 DMZ 完成。

由于复杂性,Kubernetes 不是一个选择(而且我对 vanilla docker 更熟练),因为一个人(就是我)正在管理基础设施(网络、固件、服务器、存储、Linux/UNIX)和部署。还有 gitlab 即将推出的新环境管道。

我们希望根据彼此之间的关系,分 3 批逐步将 12 个应用程序移至集群中。第一阶段完成 UAT 的时间表是 2024 年 5 月 20 日。

  • 没有办法重新编写应用程序,
  • 二进制文件、配置和卷将移至映像,并且
  • 对 IP 没有直接依赖,因为它是 /etc/hosts 或帮助名称的 DNS
  • Consul 直接在主机上运行在所有 3 个 docker 主机上,而不是在 docker 中运行。集群设置在所有 3 台主机上。尚未设置特使。 Consul 的 DNS 也在端口 53 上启用,而 UI 和其他 grpc 端口保持原样。

问题 我们希望为 docker swarm 中运行的所有服务使用 consul 的 DNS。我们想要在 docker 上传递 DNS 配置。然而,由于无法重写代码,我们希望确保服务在 consul 上动态注册,以便可以从其他正在运行的 docker 中发现它。我们可以为此使用 sidecar 代理,但没有适合我们用例的适当文档。另外,我们不确定是否需要 sidecar,因为我们将依赖 consul 的 DNS 并转发到 AD 来获取其他遗留/非 Docker 服务。

此外,我们在 debian 12 上运行,因此没有 OEM 参与其中。 请帮忙!

microservices docker-swarm consul service-discovery
1个回答
0
投票

我们希望确保服务在 consul 上动态注册,以便可以从其他正在运行的 docker 中发现它。

Registrator 可用于自动将 Docker 容器注册到 Consul 中。该项目最近还没有看到很多更新,但据我所知它仍然有效,所以它应该是一个可行的选择。

© www.soinside.com 2019 - 2024. All rights reserved.