Kubernetes部署,Pod和Container概念

我最近开始熟悉Kubernetes,但是当我得到这个概念时,我有一些问题,我无法通过Kubernete的概念和文档来清楚地回答,还有一些我想确认的理解。

  • 部署是在一个Pod中 部署的一组一个或多个容器映像(Docker .. etc),并通过Kubernetes Deployment Controller监视和创build,更新或删除这些部署。

  • Pod是一组一个或多个容器,来自同一部署的那些容器,还是可以来自多个部署?

  • “一个荚模型包含一个或多个相对紧密耦合的应用程序容器”。 关于何时在同一个容器中部署容器,而不是单独的容器,有没有明确的标准?

  • “Pods是可以在Kubernetes中创build和pipe理的最小可部署计算单元” – Pods,Kuberenets文档 。 这是否意味着Kubernetes API无法监视和pipe理容器(至less是直接)?

欣赏你的意见。

你的问题实际上对于StackOverflow来说太广泛了,但是在这个closures之前我会很快回答。

看看API文档可能会更清楚。 你可以这样读:

部署描述了包含对象所需行为的规范。 这是在DeploymentSpectypes的spec字段中完成的。

DeploymentSpec通过PodTemplateSpec定义相关Pod的外观与template的相似之处

然后, PodTemplateSpec为所有需要参数保存PodSpec ,并通过Container定义来定义此Pod中的容器应该是什么样子。

这不是一个强有力的在线声明,但也许可以更容易地看到事情如何相互关联。

关于什么是好尺寸的标准以及对于Pod或Container来说太大的标准。 这是非常意见加载和解决这个问题的最好方法是通读微服务的大小的意见。

为了说明您的最后一点 – Kubernetes能够监视和pipe理容器,但“用户”无法安排单个容器。 它们必须embedded到Pod定义中。 您当然可以访问每个容器的容器状态和详细信息(例如,通过kubeget logs <pod> -c <container> ( 详细信息 )或通过指标 API。

我希望这有所帮助,不会增加混乱。