Kubernetes Pod 是什么?为什么需要Pod?为什么不直接管理容器containers?

Kubernetes(k8s)是一款能够管理容器化(containerized)服务的自动化平台,帮助我们部署,管理,以及监测服务。通俗一点说,就是我们可以将写好的程序打包进容器(container)里面,接着k8s再将这些容器自动部署到指定的集群(cluster)。同时,k8s也会检测服务在集群上面的状态,如果服务崩溃了,k8s会自动在适合的集群上重新创建这个服务;如果服务过载,k8s可以根据事先做好的配置(configuration)来做scaling。

Pod

K8s并不会直接管理容器,而是用pod作为一个新的资源单位,将容器纳入pod里面来管理。这听起来有一点抽象,让我们用下面这一张示意图来表示:

在这里插入图片描述
此时很多同学都会有一个疑问:为什么k8s要使用pod的概念,而不直接管理containers呢?

这是一个很好的问题。我刚开始接触k8s的时候也曾经这样想过,为什么要使用pod这个概念来让事情变得更复杂呢?然而真实的情况则是,使用pod这个概念反而可以让事情变得更加简化。

从上图可以得知,一个Pod可以容纳一个到多个containers。k8s直接管理pod的生命周期,包括创建,更新,scaling以及删除。这样做的好处就是k8s每次都能对pod里的所有containers进行批量管理。有些同学会问为什么我们要对所有containers进行批量管理?为什么我们不想对单个container进行管理?

对于第一个问题,为什么我们要对所有containers进行批量管理,简单的答案是因为有一些服务(service)是需要一个以上的containers互相作用才能够运行的。当我们要对这个服务进行scaling的时候,通常我们希望将这些互相依赖的containers一起进行scaling。

对于第二个问题,为什么我们不想对单个container进行管理,简单的回答是我们在某些情况下也想只单独管理一个container的。比如有一些服务只需要一个container就可以运行了。在这种情况下,pod也可以只包含一个container,然后其他的操作都维持不变。

另外一个使用pod的好处就是可以方便我们使用与管理service mesh。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值