1-介绍Kubernetes是什么

发布于:2022-12-02 ⋅ 阅读:(582) ⋅ 点赞:(0)

什么是Kubernetes

 

(图片来自: kubernetes.io)

如果对于Docker/Container还不太熟悉的读者,不妨先看看容器介绍内容, 也许会对什么是container更加了解.

Kubernetes是一个协助我们自动化部署、扩容以及管理容器化应用(containerized applications)的系统。相较于需要手动部署每个容器化应用(containers)到每台机器上,Kubernetes可以帮我们做到以下几件事情:

  • 同时部署多个containers到一台机器上,甚至多台机器。

  • 管理多个container的状态。如果提供某个服务的container不小心crash了,Kubernetes会检测到并重启这个container,确保持续提供服务。

  • 将一台机器上所有的containers转移到另外一台机器上。

  • 提供机器高度扩展性。Kubernetes cluster可以从一台机器,扩容到多台机器共同运行。

为何使用Kubernetes

笔者过去曾参与过大型项目开发,上线产品、排错、与测试功能都包在一起。每次发布新功能、修改代码都非常胆战心惊,哪怕是一个bug也会影响整个系统功能。而相较于这样单体架构(Monolithic Architecture) 的服务,微服务(microservices)架构 大大减少代码复杂度,将每个服务依照各自业务需求独立出来,以Restful API互相调用。而microservice概念的导入,改善了我们过去所面临的问题:

  • 将庞大的项目拆分为几个不同的子项目,当代码量够小、容易理解、开发效率能够大大提高;

  • 各个服务之间也可独立部署,不因一个服务瘫痪而瘫痪整个系统

  • 各团队可以依照自己的需求使用适合自己的语言、类库开发

  • 每个服务也可以依照自己的需求,选择在不同机器上部署

然而,当系统中的微服务越来越多时,管理上也会面临到很大的挑战。 Kubernetes的出现让我们管理这些微服务应用更加方便。

Kubernetes的优点

  • 可以跑在任何地方

    Kubernetes可以运行在任何地方:不论是私有云、公有云(如AWS、Google Cloud Platform)、或是混合云。

  • 高度模块化High Modular

    每个服务都被分割成一个container,不论是要做修改、扩充、甚至将服务迁移到另外一台机器,都可以快速部署、快速实现。

  • 活跃的社区Open source & active community

    Kubernetes是开源 的,受到社区的关注度也非常高。

  • Google的背书 Backed by Google

    最初版的Kubernetes事由Google内部 Borg team的成员编写且现在仍在持续维护。Google使用它们自身的系统Borg管理容器化应用长达十余年。Kubernetes的目的即是将Borg最精华的部分取出来,使得开发者能够更简单、直接应用。

Q&A

笔者也在持续学习Kubernetes中,如有对于文章有任何疑问或建议,也欢迎大家留言给我 :)

参考链接


网站公告

今日签到

点亮在社区的每一天
去签到