docker - 在 Kubernetes 平台上载入 Docker 中的现有容器
问题描述
我是 Kubernetes 世界的新手。我有一个集群设置,其中多个节点运行不同的容器。我想将设置迁移到 Kubernetes。我打算在其中一个节点上安装 kubernetes master 并准备其他节点作为 kubernetes worker。
如果我准备一个 kubernetes 集群,kubernetes 会检测到这些主机上现有的正在运行的容器吗?如果没有,是否有任何插件/设施将为正在运行的容器创建相应的 kubernetes 对象?
解决方案
我基本上会在这里从头开始。Kubernetes 可以使用您现有的 Docker镜像,但它应该有自己的专用硬件,并且您需要编写新的 YAML 文件来部署它。
Kubernetes 只知道它自己管理的容器。在大多数情况下,Kubernetes 希望专门管理多个整个节点;使用一些手动管理的容器运行“部分是 Kubernetes”的节点是没有意义的。如果您可以使用集群自动缩放器之类的组件,则可以根据实际集群负载动态添加和删除节点,而不受您的直接控制;如果 Kubernetes 不知道将其重新定位到其他地方,则节点上被删除的任何内容都将丢失。
有像Kompose这样的工具可以尝试将 Docker Compose 设置迁移到 Kubernetes YAML,但它们是有限的,您需要实际学习 Kubernetes 设置来解决这些限制。最突出的例子是绑定挂载的主机目录:你不能直接在 Kubernetes 中使用主机文件(......来自哪个主机?)并且 Kompose 只是删除卷挂载。要解决这个问题,您需要了解 Secrets 和 ConfigMaps,以及 Kubernetes 的“卷”抽象概念,以及它在 Pod 规范和部署规范中的位置;如果您对此有很好的处理,那么您可以直接编写 Kubernetes YAML。
推荐阅读
- c++11 - 使用 Wasm-ld 链接库时出错:std 函数上的符号类型 mimsatch
- google-admin-sdk - 目录 API 缺少用户的“网站 []”对象
- sql - 试图在 Laravel 中发布一个对象数组。ErrorException:从文件中的空值创建默认对象
- javascript - 为什么 useEffect 呈现意外的值?
- php - 将单选按钮添加到标准 Wordpress 注册表单
- laravel - 无法解码 json laravel
- android - 关闭 android 应用程序时忽略 Form.destroy
- prolog - Prolog 中的格式输出
- c - 如何从无符号字节转换为整数?
- react-native - 如何在 react-native 中创建线性渐变(在图像顶部和应用栏下方)