首页 > 解决方案 > 在 Kubernetes 平台上载入 Docker 中的现有容器

问题描述

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

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

标签: dockerkubernetescontainers

解决方案


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

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

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


推荐阅读