我知道这可能是一个旧的讨论项目。然而,我还没有找到任何合适的文件来回答我的疑问
背景 我们有 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 日。
问题 我们希望为 docker swarm 中运行的所有服务使用 consul 的 DNS。我们想要在 docker 上传递 DNS 配置。然而,由于无法重写代码,我们希望确保服务在 consul 上动态注册,以便可以从其他正在运行的 docker 中发现它。我们可以为此使用 sidecar 代理,但没有适合我们用例的适当文档。另外,我们不确定是否需要 sidecar,因为我们将依赖 consul 的 DNS 并转发到 AD 来获取其他遗留/非 Docker 服务。
此外,我们在 debian 12 上运行,因此没有 OEM 参与其中。 请帮忙!
我们希望确保服务在 consul 上动态注册,以便可以从其他正在运行的 docker 中发现它。
Registrator 可用于自动将 Docker 容器注册到 Consul 中。该项目最近还没有看到很多更新,但据我所知它仍然有效,所以它应该是一个可行的选择。