Kubernetes 部署、Pod 和容器概念

Kha*_*led 6 deployment docker kubernetes kubernetes-pod

我最近开始熟悉 Kubernetes,然而,虽然我确实了解了这个概念,但我还是有一些问题无法通过 Kubernetes 的概念文档清楚地回答,以及一些我希望确认的理解。

  • 部署是部署在Pod中的一组一个或多个容器映像(Docker 等),并通过 Kubernetes 部署控制器监视和创建、更新或删除此类部署。

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

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

  • “Pod 是可在 Kubernetes 中创建和管理的最小可部署计算单元” - Pod、Kuberenets 文档。这是否意味着 Kubernetes API 无法(至少直接)监控和管理容器?

感谢您的意见。

pag*_*gid 3

你的问题实际上对于 StackOverflow 来说太宽泛了,但我会在这个问题结束之前快速回答。

也许当你查看 API 文档时会更清楚。你可以这样读:

部署描述所包含对象的所需行为的规范。这是在DeploymentSpecspec类型的字段内完成的。

DeploymentSpec通过PodTemplateSpec定义相关 Pod外观template

然后,PodTemplateSpec保存所有必需参数的PodSpec ,并通过Container定义定义此 Pod 中的容器的外观。

这不是一个有力的单行陈述,但也许可以让您更容易地了解事物之间的相互关系。

与 Pod 或容器的合适大小和太大的标准相关。这是非常有观点的,弄清楚这一点的最好方法是通读有关微服务规模的观点。

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

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