【问题标题】:Docker deployment best practicesDocker 部署最佳实践
【发布时间】:2017-11-03 03:07:15
【问题描述】:

我刚刚开始我的 docker 之旅,并试图将如何将 docker 部署到云中的生产实例的图像放在一起。我们目前将 ansible 用于我们所有的应用程序部署。但是,当我查找有关部署 docker 容器的信息时,我会看到对 swarm 和 kubernetes 的引用,或者似乎是通过 ssh 手动部署的内容。

所以,我的菜鸟问题是,如何将 docker 部署到云中的主机?有什么理由使用ansible吗? (他们有一个插件。)似乎 swarm 或 kubernetes 可能会为我们解决这个问题。

【问题讨论】:

    标签: docker deployment kubernetes docker-swarm


    【解决方案1】:

    4 年前我在一个基于容器的平台上工作,当时我们使用 Ansible 部署容器,因为编排框架不存在。

    现在,我建议使用编排框架(Kubernetes、Docker Swarm、Openshift 等),它提供入口负载平衡、生命周期管理、持久卷管理等功能。

    在公有云中运行容器的方式有很多种,有的实现像Kubernetes这样的编排框架,有的实现自己的框架:azure acs/aks、AWS ECS、Google Container Engine等。Docker机器可以在公有云中配置docker swarms也是。有趣的是,底层的虚拟机要么是隐藏的,要么是为你管理的。

    有很多方法可以做到这一点,但仅使用 Ansible 将仅限于在您必须配置和管理的现有 VM 上启动容器。

    【讨论】:

      【解决方案2】:

      我相信这个问题的答案会因应用程序的部署要求而异。

      案例 1) 您的应用程序的部署很简单,您只需部署 docker 容器即可。

      解决方案 1) 在这种情况下,您实际上并不需要配置管理工具来管理您的部署,我相信,您几乎可以按照 here 的建议设置 Jenkins 工作。

      案例 2)您的应用程序的部署也需要在 docker 主机实例中完成一些配置,也许您需要设置一些监控代理,设置一些 logrotate 等。

      解决方案 2)您应该使用 ansible/chef 来设置您的主机环境并使用它部署 docker 容器。现在这里的 docker 容器部署可以像普通的 docker run 一样,或者你可以使用推荐的 docker swarm 方式,如果你有超过 1 个应用程序要部署并且你希望你的 docker 主机实例能够有效地使用内存或 cpu。更不用说使用 swarm 有多种其他好处,您可以检查它们是否适用于您。

      Case 3) 你的应用部署需要你修改一些内核级别的参数,可能需要修改ulimit参数等。

      解决方案 3) Docker swarm 在内核配置选项方面存在一些限制。您可以参与讨论here。在这种情况下,您可能必须采用经典的 docker 部署方式,即 docker run,直到为 docker swarm 中的这些配置添加支持。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-25
        • 2017-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-05
        • 1970-01-01
        • 2023-02-05
        相关资源
        最近更新 更多