随着云计算步入第二个发展十年,我国云计算市场进入高速增长阶段。容器、微服务、DevOps等技术不断推动云计算的变革,云计算应用深入到政府、金融、工业、交通、物流、医疗健康等传统行业,K8s更是无处不在,成为企业云原生力量的重头戏。今天小编就给大家简单介绍一下云计算学习课程中有关K8s的概念知识。
K8s是什么?
K8s,即Kubernetes,是Google开源的容器集群管理系统,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。红帽首席架构师Bilgin Ibryam曾表示,容器编排工具竞争的结果不管是哪种情况,Kubernetes都是最后一个活下来的平台。有分析师预计,2019年将是“K8s年”。
Kubernetes是当今最具变革意义的云技术,凭借其内置的高可用性、细粒度、可伸缩性、可移植性等特点,提供了许多在本地和云之间真正可互相操作的关键特性。Kubernetes既可以帮助企业用于新应用的开发,也能重构企业过去的遗留系统。不管是哪种类型的企业,多大规模的企业,都希望借助Kubernetes来实现云端转型。
K8s的核心概念
Master:K8s集群的管理节点,负责管理集群,提供集群的资源数据访问入口;
Node:K8s集群架构中运行Pod的服务节点(亦叫agent或minion)、集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机;
Pod:运行于Node节点上,若干相关容器的组合,是K8s进行创建、调度和管理的最小单位,提供了比容器更高层次的抽象,使得部署和管理更加灵活;
Replication Controller:用来管理Pod的副本,保证集群中存在指定数量的Pod副本;
Service:定义了Pod的逻辑集合和访问该集合的策略,是真实服务的抽象;
Label:K8s中的任意API对象都是通过Label进行标识,Label的实质是一系列的Key/Value键值对,其中key于value由用户自己指定。
K8s的全生命周期管理
在K8s进行管理应用的时候,基本步骤是:创建集群,部署应用,发布应用,扩展应用,更新应用。
创建集群。在K8s只要使用两条指令就可以创建一个集群,一个是kubectl init进行初始化,创建一个master节点,第二条指令就是kubectl join xxx创建一个node节点,加入这个集群。
部署应用。使用集群的主要目标是用来提供服务,让开发开发的应用程序能在集群上运行。在开发完成程序之后,需要将程序打包成image,然后放到registry中,就能够运行应用了。
发布应用。发布应用主要就是对外提供服务,需要注意的是,在集群当中,创建的IP地址等资源,只有在同一个集群中才能访问。
扩展应用。想要扩展容量,只需一个pod就可以搞定;想要缩容,不用创建vm,不用去部署中间件,不用去各种修改配置,可以自动化实现。
更新应用。根据新的image创建一个pod,分配各种资源,然后自动负载均衡,删除老的pod,然后继续更新,这个过程不会中断服务,如果更新错了,只需回滚就可以。
K8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈。想要成为一个优秀的云计算工程师,掌握K8s很有必要!