4

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

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

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

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

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

感谢您的意见。

4

2 回答 2

3

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

当您查看 API 文档时,可能会更清楚。你可以这样读:

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

DeploymentSpec通过PodTemplateSpec定义相关Podtemplate的外观

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

这不是一个有力的单行语句,但可能更容易看出事物之间的关系。

与什么是合适的尺寸以及对于 Pod 或容器来说太大的标准有关。这是非常有意见的,弄清楚这一点的最好方法是阅读关于微服务大小的意见

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

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

于 2017-03-30T11:57:01.310 回答
0

Pod 是 Kubernetes 提供的一种抽象,它对应于一组共享命名空间子集的容器,最重要的是网络命名空间。例如,在这些容器中运行的应用程序可以像同一个 vm 中的应用程序进行交互一样进行交互,除了它们不共享相同的文件系统层次结构这一事实。

工作负载以 pod 的形式运行,但 POD 是较低级别的抽象。工作负载通常根据 Kubernetes Deployments/Jobs/CronJobs/Daemonsets 等进行调度,这些又会创建 Pod。

于 2019-10-18T00:52:06.740 回答