Docker Swarm,Kubernetes和Compose

我刚才听说过未来Docker版本中对Kubernetes的原生支持.我之前从未使用过Kubernetes,所以我开始阅读它.但我有点困惑:Kubernetes被描述为编排工具,也是Dockers swarm模式的替代品.

因此,如果Kubernetes进行编排,它还是docker-compose的替代方案吗?或者可以组合和Kubernetes一起使用?

一些具体问题:
假设我想要(或者有)使用Kubernetes:

>我有一个包含多个微服务的docker-compose文件,但它们在一台机器上作为独立应用程序运行.它可以(或应该)被Kubernetes取代吗?
>我有一个docker-compose文件,其中有多个服务以swarm模式配置(在多台机器上运行).哪个部分必须由Kubernetes取代?整个撰写文件?或者在某种程度上可以在compose文件中定义基本配置(env_var,volumes,command,…)并仅使用Kubernetes来编排群集?

最佳答案

So if Kubernetes does orchestration,is it also an alternative to
docker-compose?

简答:没有

它不仅仅是编排,基本上Kubernetes是一个生产级的容器编排和调度引擎.它比docker-compose本身要先进得多.我会说docker swarm,kubernetes和amazon ecs属于同一类别.

Or can compose and Kubernetes be used together?

在下一版本的docker引擎中,您将能够使用docker-compose来创建kubernetes对象.但截至目前你不能.

I have a docker-compose file containing multiple microservices,but
they are running as a standalone app on a single machine. Can (or
should) it be replaced by Kubernetes?

好吧,在生产中运行它的上下文中,我绝对会说,你一定要把你的应用程序托管在kubernetes集群上,因为它提供了

>弹性(如果他们死亡,重新安排豆荚)
>扩展(根据cpu或任何其他指标扩展容器)
>负载均衡(提供VIP知道服务并将所有pod连接到它)
>秘密和配置管理
>名称空间(kubernetes对象的逻辑分组)
>网络策略(用于控制pod之间流量的自定义策略)

以及更多开箱即用的功能.当你宣布一个状态时,kubernetes会一直试图实现并保持这种状态.

I have a docker-compose file with multiple services configured in
swarm mode (running on multiple machines). Which part has to be
replaced by Kubernetes? The whole compose file? Or is it somehow
possible to define basic configuration (env_var,
…) within compose file and use Kubernetes only to orchestrate the
clustering?

我将替换整个swarm集群并使用kubernetes集群和对象定义yamls组成文件结构.根据我的经验说,那些yamls可能会有点冗长所以,如果你热衷于看看Helm.它是kubernetes的包管理器,你不必使用,但我认为它是最好的工具之一目前在kubernetes生态系统中,有大量的开源图表可供使用.

我强烈建议您在本地系统上使用minikube来玩kubernetes只是为了熟悉一般概念.然后,您将能够自己回答上述问题.

相关文章

最近一直在开发Apworks框架的案例代码,同时也在一起修复Apw...
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。...
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,...
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...