一、简介 1、什么是Kubernetes
简称K8s,用8代替8个字符“ubernerte”而成的速写,K8s是一个开源的容器编排平台,它是一个跨主机集群的开源容器调度平台,用于管理云平台中多个主机上的容器化的应用,它可以自动化应用容器的部署、扩展、的操作,k8s的目标是让部署容器化的应用简单并且高效,构建一个软件和工具的生态系统,以减轻企业在公有云或私有云运行应用程序的负担,;K8s提供了应用部署、规划,更新,维护的一种机制。
K8s项目由Google公司在2014年启动,Kubernetes建立在google公司超过十余年阿运维经验基础之上,Google所有的应用都运行在容器上,再与社区中最好的想法和实践相结合,也许它是现在最受欢迎的容器平台。
2、使用K8s可以快速高效响应客户的需求:快速、可预测地部署您的应用程序
拥有即使扩展应用程序的能力
不影响现有业务的情况下,无缝地发布新功能
优化了硬件资源,降低成本
3、K8s具有如下特点:便捷性:无论公有云、私有云、混合云还是多云架构都全面支持
可扩展性:它是模块化、可插拔、可挂载、可组合,支持各种形式的扩展
自修复:它可以自保持应用状态、可自重启、自复制、自缩放的,通过声明式语法提供了强大的自修复能力
4、三个时代说明,K8s为什么如此有用
传统部署时代:早期,组织都是再物理服务器上运行应用程序,无法位物理服务器中的应用定义资源边界,着会导致资源分配问题。比如,如果再物理服务器上运行多个应用程序,可能会出现一个应用占用大部分资源,其他应用程序的性能就将下降,解决方案往往是在不同服务器上运行每个应用程序,但这并没有随着资源利用不足而扩展资源,并且维护诸多物理服务器成本也很高。
虚拟化部署时代:为了解决上面提到的资源分配问题,引入了虚拟化,它允许在单个物理服务器的CPU上允许多个虚拟机(VM)。虚拟化允许应用程序在VM之间隔离,并提供安全级别,因为一个应用程序的信息不能被另一个应用程序自由访问。
虚拟化可以更好的利用物理服务器中资源,并可以实现更好的可伸缩性,因为可以轻松地添加或更新应用程序,降低硬件成本等等。借助虚拟化,您可以将一组物理资源呈现位一组一次性虚拟机。
每个VM是一台完整的计算机,在虚拟化硬件上运行所有组件,包括其自己的操作系统
容器部署时代:容器类似VM,但是他们具有轻松的隔离属性,可以在应用程序之间共享操作系统。因此,容器被认为是轻量的,与VM相似,容器具有自己的文件系统,CPU,内存,进程空间等。由于他们与基础架构分离,因此可以跨云和OS分发进行移植
5、补充使用容器的好处敏捷的应用程序创建和部署:与使用VM镜像相比,容器镜像创建的简便性和效率更高。
持续的开发,集成和部署:通过快速简单的回滚(镜像不可更改),提供可靠且频繁的容器镜像构建和部署。
开发和运营的关注点分离:在构建/发布时,而不时在部署时创建应用程序容器镜像,从而将应用程序与基础架构分离。
可观察性不仅可以显示操作系统级别的信息和指标,还可以显示应用程序的运行状况和其他信号。
跨开发,测试和生成环境一致性:在便捷式计算机上与在云中相同的运行。
云和操作系统分发的可移植性:可在Ubuntu,RHEL,coreOS,本地,google kubernetes engine和其他任何地方运行。
松散耦合,分布式,弹性,解放的微服务:应用程序被分解成较小的独立部分,并且可以动态部署和管理,而不时在一台大型单机上运行的整体堆栈。
资源隔离:可预测的应用程序性能。
资源利用:高效率和高密度。
6、K8s提供了哪些功能服务发现和负载均衡
K8s可以使用DNS名称或使用其自己的IP地址公开容器。如果到容器的流量很高,K8s可以负载均衡分配流量,使部署稳定
存储编排
允许自动挂载选择的存储系统,例如本地存储,公有云提供商等。
自动部署和回滚