【问题标题】:Why a docker-container or a kubernetes-pod is considered disposable?为什么 docker-container 或 kubernetes-pod 被认为是一次性的?
【发布时间】:2017-10-07 12:43:33
【问题描述】:

我在许多书籍和文档[1][2] 中读到,docker-container 或 pod 被认为是一次性的并且寿命很短。为什么它们被认为如此短暂?在这种情况下,如何在生产环境中运行容器化应用程序?

另外,disposable-container 和 immutable-container 这两个词意思一样吗?

[1]https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/
[2]https://developers.redhat.com/blog/2016/02/24/10-things-to-avoid-in-docker-containers/

【问题讨论】:

    标签: docker kubernetes containers


    【解决方案1】:

    另外,disposable-container 和 immutable-container 这两个词意思一样吗?

    不可变意味着一旦创建,就无法更改。就您的问题而言,一次性意味着它可以被销毁和更换而不会产生什么后果。

    这些东西并不相同,但它们在典型的容器化应用程序中一起运行。您将运行一个不可变的容器,当您想要更改容器的行为时,您可以将其替换为新容器,而不是尝试更改现有容器。

    这与 VM 之类的不同,如果您想更改应用程序的行为,您可以在其中部署代码更新并重新加载服务或类似的东西。

    为什么它们被认为如此短暂?

    容器是一个进程。一个过程是短暂的。容器是短暂的。 Containers are able to persist data separately though

    如何在生产环境中运行容器化应用程序

    如果您对在生产环境中使用容器的困扰可以改写为“如何在生产环境中运行容器化应用程序没有状态?”,那么我首先要说的是,并非所有应用程序都是有状态的。例如,一个基本的 Web 服务器,或大量精心设计的微服务。

    对于有状态的应用程序,没有什么能阻止您使用通用数据库来支持您的容器化应用程序。如上所述,您还可以使用卷。您可以将两者结合起来运行一个容器化数据库,使用数据库容器下的卷。状态并不是真正的问题。

    【讨论】:

    • 我明白了!容器是一次性的,因为不应该直接对容器进行更改(容器层的更改将在重新启动容器后消失)。因此,应该重建容器,尽管销毁并用新容器替换它
    猜你喜欢
    • 2018-01-01
    • 2012-08-14
    • 2012-11-19
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    相关资源
    最近更新 更多