我最近开始熟悉Kubernetes,但是当我得到这个概念时,我有一些问题,我无法通过Kubernete的Concept和Documentation清楚地回答,以及我希望确认的一些理解 .
-
Deployment是一个部署在Pod内的一个或多个容器映像(Docker ..etc)的组,并通过Kubernetes部署控制器监视和创建,更新或删除此类部署 .
-
Pod是一个包含一个或多个容器的组,是来自同一部署的那些容器,还是来自多个部署?
-
“一个pod模型包含一个或多个相对紧密耦合的应用程序容器” . 何时在同一个pod中部署容器,而不是单独的pod,是否有明确的标准?
-
"Pods are the smallest deployable units of computing that can be created and managed in Kubernetes" - Pods, Kuberenets Documentation . 这是否意味着Kubernetes API无法监控和管理容器(至少直接)?
感谢您的意见 .
1 回答
你的问题实际上对于StackOverflow而言过于宽泛,但我会在关闭之前快速回答 .
当您查看API文档时,可能会更清楚 . 您可以这样读:
Deployment描述了所包含对象的期望行为的规范 . 这是在
spec
字段中完成的,该字段的类型为DeploymentSpec .DeploymentSpec定义了
template
通过PodTemplateSpec的相关Pod的外观然后PodTemplateSpec为所有require参数保存PodSpec,并定义此Pod中的容器应如何通过Container定义 .
这不是一个有力的在线声明,但也许可以更容易地看到事物彼此之间的关系 .
与's a good size and what'对于Pod或Container而言太大的标准相关 . 这是非常意见,最好的解决方法是阅读关于Microservices大小的意见 .
为了掩盖你的最后一点--Kubernetes能够监控和管理容器,但"user"无法安排单个容器 . 它们必须嵌入Pod定义中 . 您当然可以访问容器状态和每个容器的详细信息(例如,通过
kubeget logs <pod> -c <container>
(details)或通过metrics API .我希望这有点帮助,不会增加混乱 .