1.Kubernetes是可扩展的开源平台,用以管理容器化的负载和服务,促进声明式的配置和自动化。他拥有巨大且快速成长的生态系统。Kubernetes的服务、支持和工具广泛适用。
Kubernetes拥有多种特性,它能被当作
Kubernetes提供容器为中心的管理环境。它为用户协调了计算、网络和存储基础架构。这提供了平台即服务的简单性和基础架构即服务的灵活性。促进了基础架构供应者的可移植性。
尽管Kubernetes 提供了很多的功能,但总会有新的场景受益于新特性。它可以简化应用工作流来提高开发速度。受人认可的应用编排需要强大的规模化自动化能力。这就是为什么Kubernetes被设计为构建组件和工具的生态系统平台,使部署、规模化和管理应用更轻松。
Label使用户可以根据个人喜好管理资源。Annotation允许用户使用定制信息来装饰资源以适用于工作流程,并为管理工具提供检查点状态的简单方法。
此外,Kubernetes控制面板基于相同的api,对用户和开发者都可用。用户可以通过通用的CLI命令行工具定位新加的自定义api,来编写自己的控制器、调度器。
这种设计使得其他系统也可以在Kubernetes之上构建。
Kubernetes不是传统的、无所不包的平台即服务系统。Kubernetes运行起来更偏向容器级别而不是硬件级别。它和平台即服务一样提供大体适用的功能,例如部署、规模化、负载均衡、日志和监控。但Kubernetes并不是一体的,这些默认方案是可选可插拔的。
Kubernetes为构建开发平台提供构建块,但保留用户的选择和灵活性。
Kubernetes:
此外,Kubernetes不仅仅是编排系统。事实上,它消除编排的需要。编排的技术定义是执行一个规定的流程:先做A、做B再做C。相反,Kubernetes由一系列独立的可组合的控制流程组成,这些控制流程将当前状态朝着目标状态驱动。你不需要知道怎么从A到C,也不需要集中控制。这使得易用、强大、健壮、弹性、可扩展。
旧的应用部署方式是在主机上使用操作系统包管理器来安装应用。这会耦合应用的可执行程序、配置、依赖库和生命周期和主机操作系统。可以通过构建不可变的虚拟机镜像来达到可预测的发布和回滚。但是虚拟机静态太重太不变。
新的部署方式基于操作系统级别虚拟化而不是硬件级别虚拟化。容器们各自分离并且与主机分离:它们由各自的文件系统,无法看到彼此的进程,并且它们的计算资源可以被限制。它们比起虚拟机更易构建。由于它们与底层的基础架构和主机文件系统解耦,所以它们便于通过云和操作系统分发。
由于容器体积小,速度快。应用可以在每个容器镜像中打包。这种一对一、应用对镜像关系有很多好处。使用容器,不可变的容器镜像可以在构建/发布阶段创建,而不是部署阶段。因为每一个应用不需要由其他应用组成,也不依赖与产品基础架构环境。在构建发布阶段构建容器镜像使得环境的一致性从开发环境保持到了生产环境。
容器也比虚拟机更透明,有利于监控和管理。特别是当容器进程的生命周期由基础架构管理而不是由容器内部的进程监管者隐藏时,更是如此。当每个应用封装于一个容器时,管理容器部署和管理应用部署是等同的。
容器的好处归纳: