所以我试图围绕一个典型的Kubernetes吊舱看起来是什么样子。根据{{3}}, pod :
" 一个pod(如在鲸鱼或豌豆荚中)对应于使用共享上下文运行的共同应用程序组。"
后来在同一篇文章中:
" Pods可用于托管垂直整合的应用程序堆栈,但其主要动机是支持共存...... "
好的,所以你可以组织一个pod作为整个垂直堆栈(从DB到web应用程序)。但显然,这通常不是它的组织方式,所以我认为通常是" 水平"组织是首选(为什么?? )。
但对我来说,横向分层/分层意味着你只在一个容器中有一个容器,因为通常在每个服务层(web,app,cache,db等)中你都会有一种类型的组件。
让我们举一个具体的例子。假设我们有以下垂直堆叠层:
这些是应用程序堆栈中相当典型的组件。如果我们反对Kubernetes'自己的建议,并创建"垂直对齐" pod,每个pod将由每层的一种类型的容器组成(web / app服务器,每个微服务,每个DB等)。
但是如何组织水平对齐的吊舱?什么容器会进入哪个容器?</ strong>
答案 0 :(得分:7)
Pod是Kubernetes的基本调度单位。通常情况下,pod只有一个容器在其中运行,因为大多数容器可以独立调度(即它们不需要共同位于同一台机器上)。
关于您的示例,您可以将大多数容器放在单个容器中,并使用复制控制器根据需要水平扩展每个Pod(以及容器)的副本数。与复制控制器一起,您还需要服务来在副本之间进行负载平衡。可以使用pod /复制控制器/服务上的标签来组织垂直层,例如tier=message_broker
。
编辑:
将整个堆栈放在一个容器中并不是一个好主意的原因是它限制了您的灵活性: