Kubernetes快速入门(第2版)
上QQ阅读APP看书,第一时间看更新

1.2 何为云原生

因为前面已经涵盖了云原生的一些内容,所以现在说起来就比较容易了。

一个云原生应用必须能够:

按需扩缩容;

自我修复;

支持滚动更新;

可以在任何有Kubernetes的地方运行。

让我们花点儿时间来定义其中一些流行术语的含义。

按需扩缩容是指应用和相关基础设施为了满足当前需求自动增长和收缩的能力。例如,在线零售应用可能需要在特殊的假期增加基础设施和应用资源,然后在假期结束时缩小规模。如果配置正确,Kubernetes可以在需求增加时自动对应用和基础设施进行扩容,也可以在需求下降时对它们进行缩容。

这不仅有助于企业对突发变化做出更快速的反应,还能在缩容时帮助其降低基础设施的成本。

Kubernetes还可以自我修复应用和单个微服务,这需要更多关于Kubernetes的知识,将会在后面介绍。但现在要知道的是,当用户把一个应用部署到Kubernetes时,用户告诉Kubernetes这个应用应该是什么样子。例如,每个微服务有多少个实例,应该连接到哪些网络。Kubernetes将其保存为期望状态(desired state),并监视应用,以确保它始终与期望状态匹配。如果有什么变化,例如,某个微服务崩溃,Kubernetes会注意到这一点,并启动一个副本作为替代,这就是所谓的自我修复弹性

滚动更新是一种在不让应用离线甚至客户不会注意到的情况下更新应用的某些部分的能力。它改变了现代商业世界的游戏规则,稍后我们就可以看到它的实际效果。

关于云原生还有最后一点要讲。云原生几乎是与公有云无关的,它是一组我们讨论过的功能和能力。因此,云原生应用可以在任何有Kubernetes的地方运行,如AWS、Azure、Linode、本地数据中心或者家中的树莓派集群。

总之,云原生应用是具有弹性的、可以自动扩缩容的,并且可以在不停机的情况下进行更新。它们还可以在任何拥有 Kubernetes的地方甚至是内部环境运行。