【问题标题】:sidecar vs init container in kubernetesKubernetes 中的 sidecar 与 init 容器
【发布时间】:2021-02-26 16:25:46
【问题描述】:

我无法区分 sidecar 和 init 容器。到目前为止,我了解到真正的应用程序容器等待 init 容器做某事。但是,sidecar 可以做同样的事情,不是吗?反之亦然,init 容器不会消失,因此也可以“在旁边”运行。因此,我的困惑。

感谢您的帮助。

【问题讨论】:

    标签: kubernetes containers google-kubernetes-engine sidecar


    【解决方案1】:

    初始化容器用于初始化 Pod 中的某些内容。初始化容器将运行并退出。在每个以代码 0 退出的 init 容器之后,您的主容器将启动。

    初始化容器的示例如下:

    • 将一些文件移动到您的应用程序容器中,例如主题或配置。这个例子也在Kubernetes docs中有所描述。

    Kubernetes 本身对 sidecar 一无所知。 Sidecar-Containers 是一种解决某些用例的模式。通常,Kubernetes 会区分 Init-Container 和 Pod 中运行的容器。

    通常,我们将 Sidecar 称为所有容器,它们不提供以用户为中心的服务。例如,这可能是一个代理或其他更容易访问数据库的东西。如果您正在运行 Java 应用程序,则可以使用 sidecar 以 Prometheus 格式导出 JVM 指标。

    这里的区别在于,您的 sidecar-containers 必须始终运行。如果您的一个非初始化容器退出,kubernetes 将重新启动整个 pod。

    这就是区别。

    • 初始化容器在主应用程序启动之前运行并退出
    • Sidecar 与您的主容器并行运行,并为它们提供某种服务。

    【讨论】:

    • 谢谢!感谢您如此详细而清晰的回答!
    猜你喜欢
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 2017-10-21
    • 2021-04-11
    相关资源
    最近更新 更多