Kubernetes容器编排引擎

什么是容器编排引擎

基于容器的应用一般会采用微服务架构,在这种架构下,应用被划分为不同的组件,并以服务的形式运行在各自的容器中,通过API对外提供服务,为了保证应用的高可用,每个组件可能会运行多个相同的容器。这些容器会组成集群,集群中的容器会根据业务需要被动态地创建、迁移和销毁。

基于微服务的应用系统实际上是一个可动态伸缩的系统,因此就需要一种高效的方法来管理容器集群,这就是容器编排引擎要做的事。

Kubernetes是什么

Kubernetes也叫k8s,是Google开发的一个开源的容器集群管理工具,同时支持Docker和CoreOS容器。提供容器部署、资源调度、弹性伸缩、负载均衡、滚动发布等功能。目前流公有云提供的都是基于 Kubernetes 的容器服务,Kubernetes已经成为了容器编排引擎的事实标准。

为什么选择Kubernetes

Kubernetes一直是当今业界的流行语,也是目前最好的容器编排工具,很多知名的公司都在使用k8s,而且k8s的社区非常活跃,并且与几乎所有的云服务提供商进行合作。

Kubernetes与Docker有什么关系

Docker提供容器的生命周期管理,由Docker镜像构建运行时的容器。这些单独的容器必须要通信,这时候就可以通过Kubernetes进行通信,使用Kubernetes手动关联和编排在多个主机上运行的容器。

Kubernetes的使用场景

Docker Compose满足单一服务器的应用场景,实际的应用场景中会有跨多个主机运行的容器集群,因此这些容器需要相互通信。k8s可以提供负载均衡、扩展、容器监控等功能。

Kubernetes 的重要概念:

Cluster 计算、存储和网络资源的集合
Master Cluster的大脑,主要职责是调度
Node 运行容器应用

Kubernetes容器编排引擎_第1张图片

Kubernetes的对象

Lables : Kubernetes使用标签来标示事物,可以根据标签进行查询,标签是开放性的,你可以用他们来表示角色、稳定性或其他重要属性。

Pods : Container Pod容器仓,在k8s中Pod代表一个可运行的工作单元,通常会在Pod中运行一个容器,对于紧密相连的容器,Pod中可运行多个容器。k8s负责将Pod和网络以及k8s的其他环境相连。

Replication Controller: 提供一种管理任意数量Pod的方法,一个Repliation Controller包含一个Pod模板,该模板可以被复制任意次数。通过Replication Controller管理Pod的生命周期,包括伸缩、滚动更新、监控。

Services : 服务告知k8s环境的其他Pod和Replication Controller你的应用程序包含哪些服务,当Pod不断销毁创建时,服务的IP地址和端口号始终不变,其他应用程序可以通过k8s的服务发现找到你的服务。

volumes : 卷表示容器可以访问和存储信息的位置。

Namespaces : 命名空间是k8s内部的分组机制,Service、Pod、Replication Controller和卷可以在命名空间内部轻松协作,命名空间提供了与集群其他部分一定程度的隔离。
Kubernetes容器编排引擎_第2张图片

Kubernetes的内部组件

Kubernetes容器编排引擎_第3张图片
什么是kubectl
kubectl是一个平台,使用该平台将命令传递给集群,提供了k8s集群运行命名的方法,以及创建和管理k8s组件的方法。k8s的命令行工具,用于远程管理集群。
什么是kubelet
kubelet是一个代理服务,它在每个节点上运行,并使Node和Master进行通信,kubelet是唯一没有以容器形式运行的kubernetes组件。

你可能感兴趣的:(Kubernetes容器编排引擎)