
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
Kubernetes原生的开发
对于要将应用部署到混合云的开发人员来讲,将关注点从云原生转移到Kubernetes原生是很有意义的。“Kubernetes原生”这个提法最早可以追溯到2017年。Medium网站上的一篇博客文章(网址见链接列表1.9条目)描述了Kubernetes原生和云原生的区别,将其总结为一套针对Kubernetes进行了优化的技术体系。这里的关键点在于,Kubernetes原生是云原生的具体化,而不是从云原生的定义中分离出来。云原生应用是为云而设计的,而Kubernetes原生应用则是为Kubernetes设计和构建的。
在云原生开发的早期,编排方面的差异阻碍了应用实现真正的云原生。Kubernetes解决了编排的问题,但是Kubernetes没有涵盖云供应商的服务(比如角色和权限),也没有提供事件总线(如Kafka)。Kubernetes原生是云原生的具体化,这个理念意味着它们之间有许多相似之处。二者的主要区别在于云供应商的可移植性。如果我们想要充分利用混合云并使用多个云供应商的话,那么就需要应用能够部署在任意的云供应商之上。如果没有这种特性的话,我们就会被束缚到单一的云供应商中,并且要依赖它们在100%的时间内都能正常运行。为了充分发挥混合云的优势,应用必须按照Kubernetes原生的方式进行构建。Kubernetes原生是解决云可移植性问题的方案。我们会在第2章讨论Kubernetes原生这个话题。