这个有点理论,但请多多包涵。
目前我有一台服务器运行几个 Docker 容器(4 或 5 个,取决于日期和时间)。我计划添加另一个,就像第一个一样,甚至可能添加第三个。
现在,我的问题是:我是否应该管理 15 个容器而不是 5 个容器,使用 Google Kubernetes 有什么好处吗?
此外,是否有一个“官方”或至少“权威”的工作流程来从 Docker 容器迁移到 Kubernetes 的原生单元“pods”。在你问之前,我确实知道 pod 是由容器组成的(有时甚至是一个)。我的主要问题是 'dockerfiles' 与 pod 配置完全不同。
有任何想法吗?
如果您使用Docker 守护程序在单个服务器上运行容器,并且它的远程 API听起来很合适。
如果您需要在多台服务器上运行容器,那么Kubernetes、Docker swarm、Fleet、Mesos、Geard等编排解决方案就派上用场了。
因为他们有不同的目的:
Dockerfile
指定如何从源树构建容器映像pod.yaml
定义如何在集群的一个节点上调度(映像、命令行、卷、端口)一组位于同一位置的容器(共享网络命名空间和卷)。您可以将 pod 视为声明式指定一组
docker run --net=container:... -v ... -p ...
命令的一种方式。kubernetes/contrib中有一个名为podex的小工具,它允许您从存储在公共注册表中的图像元数据生成 pod 清单。
@proppy 的答案是正确的:一个只适用于单个服务器。
我最初的反应是一样的,但是实际上你可以在一个文件中拥有多个服务和 Pod(用 分隔
---
)。这样,通常每个容器仍然有 1 个服务 + 1 个 pod,但这还不错。除了在 docker-compose 中,您还必须命名一堆东西(有时我觉得这不是必要的)。一旦你通过了学习哪个名字在哪里,你会没事的,文件的维护也不会困难得多。
部署在 IMO 中要重得多,但它又是分布式的,而且部署 Pod 类型即将到来,它应该可以简化升级(目前作为 v1.1 中的 beta 扩展)。