Kubernetes部署、Pod和容器概念

6

我最近开始熟悉Kubernetes,虽然我理解了其概念,但我有一些问题无法通过Kubernetes的概念文档清晰地回答,并且希望确认一些理解。

  • 部署是一个或多个容器镜像(Docker等)的组合,它们被部署在Pod中,并通过Kubernetes部署控制器监视和创建、更新或删除这些部署。

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

  • "Pod模型包含一个或多个相对紧密耦合的应用程序容器"。是否有明确的标准来决定何时将容器部署在同一Pod中,而不是单独的Pod中?

  • "Pods是Kubernetes中可以创建和管理的最小可部署计算单元" - Pods, Kubernetes文档。这是否意味着Kubernetes API无法直接监视和管理容器?

感谢您的帮助。

2个回答

3

您的问题实际上太广泛了,不适合在StackOverflow上提问,但在关闭之前我会快速回答。

也许当您查看API文档时,它会变得更加清晰。您可以这样阅读:

部署描述所包含对象的期望行为规范。这是通过spec字段完成的,该字段的类型为DeploymentSpec

DeploymentSpec定义相关Pod应如何通过PodTemplateSpectemplate来呈现。

PodTemplateSpec然后保存PodSpec,用于所有必需参数,并通过Container定义来定义此Pod中的容器应该如何显示。

这不是一个简洁的一行陈述,但也许更容易看到事物之间的关系。

与Pod或Container的大小何时算合适或过大有关。这非常主观,找出最好的方法是阅读关于微服务大小的意见。

为了回答你的最后一个问题 - Kubernetes 能够监控和管理容器,但是“用户”不能安排单个容器。它们必须嵌入到 Pod 定义中。当然,您可以访问每个容器的容器状态和详细信息(例如,通过 kubeget logs <pod> -c <container>详情)或通过 指标 API)。希望这有所帮助,不会增加混乱。

1
非常感謝您的幫助,這確實有助於澄清概念。我已嘗試以具體的方式提出問題,同時避免基於意見的答案,我將將重點轉移到API文檔上,因為它更加詳細。謝謝! - Khaled

0
Pod是Kubernetes提供的一个抽象概念,它对应于一组共享一部分命名空间(尤其是网络命名空间)的容器。例如,运行在这些容器中的应用程序可以像同一虚拟机中的应用程序一样进行交互,但它们不共享相同的文件系统层次结构。
工作负载以Pod的形式运行,但Pod是一个较低级别的抽象概念。通常,工作负载是根据Kubernetes的部署/作业/定时作业/守护进程等进行调度的,而这些又会创建Pods。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接