【问题标题】:Onboarding existing containers in Docker on Kubernetes platform在 Kubernetes 平台上的 Docker 中载入现有容器
【发布时间】:2021-05-31 22:48:49
【问题描述】:

我是 Kubernetes 世界的新手。 我有一个集群设置,其中多个节点运行不同的容器。 我想将设置迁移到 kubernetes。 我打算在其中一个节点上安装 kubernetes master 并准备其他节点作为 kubernetes worker。

如果我准备一个 kubernetes 集群,kubernetes 会检测到这些主机上现有的正在运行的容器吗? 如果没有,是否有任何插件/工具可以为正在运行的容器创建相应的 kubernetes 对象?

【问题讨论】:

  • 不,不会。使用 docker 注册表(其中包含容器的映像),您可以创建 pod。主节点将决定创建 pod 的工作节点。您可以使用 yaml 文件来部署容器。尝试“Kubernetes Katacoda”以获得更好的理解。

标签: docker kubernetes containers


【解决方案1】:

我基本上会在这里从头开始。 Kubernetes 可以使用您现有的 Docker 图像,但它应该有自己的专用硬件,并且您需要编写新的 YAML 文件来部署它。

Kubernetes 只知道它自己管理的容器。在大多数情况下,Kubernetes 希望专门管理多个整个节点;使用一些手动管理的容器运行“部分是 Kubernetes”的节点是没有意义的。如果您可以使用cluster autoscaler 之类的组件,则可以根据实际集群负载动态添加和删除节点,不受您的直接控制;如果 Kubernetes 不知道将其重新定位到其他地方,那么节点上被删除的任何内容都将丢失。

有像 Kompose 这样的工具可以尝试将 Docker Compose 设置迁移到 Kubernetes YAML,但它们是有限的,您需要实际学习 Kubernetes 设置来解决这些限制。最突出的例子是绑定挂载的主机目录:你不能直接在 Kubernetes 中使用主机文件(......来自哪个主机?)并且 Kompose 只是删除卷挂载。要解决这个问题,您需要了解 Secrets 和 ConfigMaps,以及 Kubernetes 的“卷”抽象概念,以及它在 Pod 规范和部署规范中的位置;如果你对此有很好的处理,那么你可以直接编写 Kubernetes YAML。

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2021-05-11
    • 1970-01-01
    • 2017-02-21
    • 2019-01-15
    相关资源
    最近更新 更多