Kubernetes是什么

时间:2020-09-22 08:15:32

Kubernetes是一个很容易地部署和管理容器化的应用软件系统,使用Kubernetes能够方便对容器进行调度和编排。

对应用开发者而言,可以把Kubernetes看成一个集群操作系统。Kubernetes提供服务发现、伸缩、负载均衡、自愈甚至选举等功能,让开发者从基础设施相关配置等解脱出来。

Kubernetes可以把大量的服务器看做一台巨大的服务器,在一台大服务器上面运行应用程序。无论Kubernetes的集群有多少台服务器,在Kubernetes上部署应用程序的方法永远一样。

图1在Kubernetes集群上运行应用程序

Kubernetes是什么1

Kubernetes集群架构

Kubernetes集群包含master节点和node节点,应用部署在node节点上,且可以通过配置选择应用部署在某些特定的节点上。

Kubernetes集群的架构如下所示。

图2 Kubernetes集群架构

Kubernetes是什么2

Master节点

  • Master节点是集群的控制节点,由API Server、Scheduler、Controller Manager和ETCD四个组件构成。

  • API Server:各组件互相通讯的中转站,接受外部请求,并将信息写到ETCD中。

  • Controller Manager:执行集群级功能,例如复制组件,跟踪Node节点,处理节点故障等等。

  • Scheduler:负责应用调度的组件,根据各种条件(如可用的资源、节点的亲和性等)将容器调度到Node上运行。

  • ETCD:一个分布式数据存储组件,负责存储集群的配置信息。

在生产环境中,为了保障集群的高可用,通常会部署多个master,如CCE集群的高可用模式就是3个master节点。

Node节点

Node节点是集群的计算节点,即运行容器化应用的节点。

  • kubelet:kubelet主要负责同Container Runtime打交道,并与API Server交互,管理节点上的容器。

  • kube-proxy:应用组件间的访问代理,解决节点上应用的访问问题。

  • Container Runtime:容器运行时,如Docker,最主要的功能是下载镜像和运行容器。


猜你喜欢