上QQ阅读APP看书,第一时间看更新
1.3 何为编排器
借助一个类比可以更好地解释编排器这个概念。
一个管弦乐队由一群演奏不同乐器的音乐家组成。每位音乐家都可以用不同的乐器,在演奏开始后发挥着不同的作用,乐器包括小提琴、大提琴、竖琴、双簧管、长笛、单簧管、小号、长号、鼓,甚至三角琴。每一个音乐家在管弦乐队中扮演着不同的角色。
在图1-3中,每位乐器都是独立的个体,还没有被指定扮演什么样的角色——这简直是一团糟,鼓甚至是上下颠倒的。
图1-3
一位指挥家拿着乐谱和指挥棒走过来,维持秩序。她把弦乐器都安排到舞台前面,木管乐器安排在中间,铜管乐器安排在后面一点儿,打击乐器安排在后面高一些的地方。她还指挥一切,告诉每组乐器什么时候演奏、演奏多大声以及以什么速度演奏。
简而言之,指挥家将图1-3中的混乱情况变成如图1-4所示那样井井有条,以确保音乐按照作曲家的意图演奏。
云原生微服务应用就像管弦乐队。
每个云原生应用都是由很多小的微服务组成的,它们各司其职:有的服务于Web请求,有的用于认证会话,有的进行日志记录,有的用于持久化数据,还有一些生成报告。但就像一个管弦乐队一样,它们需要有人或某种东西将它们组织成一个有用的应用。
图1-4
由此,我们真正走进Kubernetes世界。
Kubernetes将独立的微服务组织成一个有意义的应用,如图1-5所示。如前所述,它可以对应用进行扩缩容、自我修复和更新等操作。
图1-5
总之,像Kubernetes这样的编排器将不同的微服务组合在一起,并将它们组织成一个有用的应用。它还提供并管理云原生功能,如扩缩容、自我修复和更新。