Kubernetes架构原理(图文最全详解)

Kubernetes架构原理(图文最全详解)-mikechen

Kubernetes定义

Kubernetes 含义是舵手或领航员,K8S是它的缩写,是基于容器的集群管理平台,是由Google创造容器编排系统。

Kubernetes架构原理(图文最全详解)-mikechen

 

Kubernetes作用

Kubernetes就是一个编排容器的工具,可以从创建应用,再到应用的部署,以及为应用提供服务、扩容缩容、故障自愈等服务。

例如:一个服务器挂了,Kubernetes可以自动将这个服务器上的服务,调度到另外一个主机上进行运行,无需进行人工干涉。

Kubernetes有助于管理运行应用程序的容器,并确保生产环境中没有停机时间,所以 Kubernetes一般都是和 Docker 搭配起来使用的。

 

Kubernetes架构原理

Kubernetes架构

Kubernetes架构,如下图所示:

Kubernetes架构原理(图文最全详解)-mikechen

一个Kubernetes集群由两部分构成 :master节点和node节点。

 

master主节点

master主节点架构,如下图黄框所示:

Kubernetes架构原理(图文最全详解)-mikechen

上面黄框的地方就是Kubernetes主节点,主要负责集群的控制,对pod进行调度,已经令牌管理等等功能。

Kubernetes的主节点通过API,从CLI(命令行界面),或UI(用户界面)接收输入来管控的,如下图所示:

Kubernetes架构原理(图文最全详解)-mikechen

这里会涉及到如下4大组件:

1.API Server

API Server是Kubernetes控制程序的前端,也是用户唯一可以直接进行交互的Kubernetes组件。

2.键值存储etcd

Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。

3.Controller

控制器的作用是:从API Server获得所需状态,并检查要控制的节点的当前状态,确定是否与所需状态存在任何差异并解决它们。

4.Scheduler

调度程序会监视来自API Server的新请求,并将其分配给运行状况良好的节点,比如:对节点的质量进行排名,并将Pod部署到最适合的节点。

注意:最好不要在主节点上运行用户应用程序,让Kubernetes主节点可以完全专注于管理集群。

 

node工作节点

工作节点监听API Server发送过来的新的工作分配,他们会执行分配给他们的工作,然后将结果报告给Kubernetes主节点。

工作节点架构,如下图所示:

Kubernetes架构原理(图文最全详解)-mikechen

上面右侧的绿框就是Kubernetes工作节点,包含如下组件:

1.Kubelet

kubelet它是Kubernetes内部的主要代理,通过安装kubelet,节点的CPU,RAM和存储成为所处集群的一部分。

kubelet它监视从API Server发送来的任务,执行任务,并报告给主节点,除此还会监视Pod。

2.Container Runtime

容器运行时从容器镜像库中拉取镜像,然后启动,以及停止容器,容器运行时由第三方软件或插件,比如:Docker担当。

3.Kube-proxy

kube-proxy确保每个节点都获得其IP地址,实现本地iptables和规则以处理路由和流量负载均衡。

4.Pod

Pod是Kubernetes中一个抽象化概念,由一个或多个容器组合在一起得共享资源,如下图所示:

Kubernetes架构原理(图文最全详解)-mikechen

在Kubernetes中,Pod是调度的最小元素,没有它容器就不能成为集群的一部分,主节点会把Pod调度到特定工作节点上,并与容器运行时协调以启动容器。

一个pod中无论是一个容器还是多个容器,当pod被master调度至某一node上时,这个pod中的所有容器都被调度到了一台node上

 

Kubernetes集群

Kubernetes集群,如下图所示:

Kubernetes架构原理(图文最全详解)-mikechen

每一个服务都有一个service,用来调度请求流量,如果其中的某个服务中的pod宕机了,pod控制器会自动创建一个新的pod并加入到该服务中。

 

Kubernetes架构总结

画了个图总结一下整个的k8s集群,如下:

Kubernetes架构原理(图文最全详解)-mikechen

Kubernetes作为云原生应用的基础调度平台,相当于云原生的操作系统。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法