Kubernetes是一个开源容器编排引擎,用于自动化容器化应用程序的部署,扩展和管理。开源项目由Cloud Native Computing Foundation(CNCF)托管。mysql
Kubernetes是一个可移植,可扩展的开源平台,用于管理容器化工做负载和服务,有助于声明性配置和自动化。它拥有庞大,快速发展的生态系统。Kubernetes服务,具备普遍的工具和支持可用。sql
传统部署时代: 早期,组织在物理服务器上运行应用程序。没法为物理服务器中的应用程序定义资源边界,这会致使资源分配问题。例如,若是在物理服务器上运行多个应用程序,则可能存在一个应用程序占用大部分资源的状况,所以其余应用程序将表现不佳。解决方案是在不一样的物理服务器上运行每一个应用程序。可是因为资源未获得充分利用,这并无扩展,组织维护许多物理服务器的成本很高。数据库
虚拟化部署时代:做为解决方案,引入了虚拟化。它容许您在单个物理服务器的CPU上运行多个虚拟机(VM)。虚拟化容许应用程序在VM之间隔离,并提供必定程度的安全性,由于另外一个应用程序没法自由访问一个应用程序的信息。json
虚拟化能够更好地利用物理服务器中的资源,而且能够实现更好的可扩展性,由于能够轻松添加或更新应用程序,下降硬件成本等等。缓存
每一个VM都是在虚拟化硬件之上运行全部组件(包括其本身的操做系统)的完整计算机。安全
容器部署时代:容器相似于VM,但它们具备宽松的隔离属性,可在应用程序之间共享操做系统(OS)。所以,容器被认为是轻质的。与VM相似,容器具备本身的文件系统,CPU,内存,进程空间等。当它们与底层基础架构分离时,它们能够跨云和OS分发进行移植。服务器
容器愈来愈受欢迎,由于它们有不少好处。下面列出了一些容器优点:markdown
此页面是Kubernetes的概述。网络
Kubernetes是一个可移植,可扩展的开源平台,用于管理容器化工做负载和服务,有助于声明性配置和自动化。它拥有庞大,快速发展的生态系统。Kubernetes服务,支持和工具普遍可用。架构
Kubernetes这个名字源于希腊语,意思是舵手或飞行员。谷歌在2014年开放了Kubernetes项目.Kubernetes创建在谷歌拥有大量运行生产工做量的十五年经验的基础上,结合了社区中的最佳创意和实践。
让咱们来看看为何Kubernetes如此有用,能够追溯到时间。
传统部署时代: 早期,组织在物理服务器上运行应用程序。没法为物理服务器中的应用程序定义资源边界,这会致使资源分配问题。例如,若是在物理服务器上运行多个应用程序,则可能存在一个应用程序占用大部分资源的状况,所以其余应用程序将表现不佳。解决方案是在不一样的物理服务器上运行每一个应用程序。可是因为资源未获得充分利用,这并无扩展,组织维护许多物理服务器的成本很高。
虚拟化部署时代:做为解决方案,引入了虚拟化。它容许您在单个物理服务器的CPU上运行多个虚拟机(VM)。虚拟化容许应用程序在VM之间隔离,并提供必定程度的安全性,由于另外一个应用程序没法自由访问一个应用程序的信息。
虚拟化能够更好地利用物理服务器中的资源,而且能够实现更好的可扩展性,由于能够轻松添加或更新应用程序,下降硬件成本等等。
每一个VM都是在虚拟化硬件之上运行全部组件(包括其本身的操做系统)的完整计算机。
容器部署时代:容器相似于VM,但它们具备宽松的隔离属性,可在应用程序之间共享操做系统(OS)。所以,容器被认为是轻质的。与VM相似,容器具备本身的文件系统,CPU,内存,进程空间等。当它们与底层基础架构分离时,它们能够跨云和OS分发进行移植。
容器愈来愈受欢迎,由于它们有不少好处。下面列出了一些容器优点:
容器是捆绑和运行应用程序的好方法。在生产环境中,您须要管理运行应用程序的容器并确保没有停机时间。例如,若是容器发生故障,则须要从新启动另外一个容器。若是系统处理这种行为会不会更容易?
这就是Kubernetes拯救的方式!Kubernetes为您提供了一个弹性运行分布式系统的框架。它负责您的扩展要求,故障转移,部署模式等。例如,Kubernetes能够轻松管理系统的canary部署。
Kubernetes为您提供:
Kubernetes不是一个传统的,一应俱全的PaaS(平台即服务)系统。因为Kubernetes在容器级而非硬件级运行,所以它提供了PaaS产品经常使用的一些通用功能,例如部署,扩展,负载平衡,日志记录和监控。可是,Kubernetes不是单片,并且这些默认解决方案是可选的和可插拔的。Kubernetes提供了构建开发人员平台的构建块,但在重要的地方保留了用户选择和灵活性。
Kubernetes: