K8S(Kubernetes)架构的基本介绍

一、K8S的由来和特点

Google公司在距今为止10年前就已经创建出容器化的基础架构:borg系统。现如今在需要自动化运维的今天Google的工程师们根据GO语言搭建出了新的架构:Kubernetes。为什么Kubernetes又叫K8S呢?这是因为在K、s之间一共有8个字母所以又为人们成为K8S。
K8S主要有以下几个特点:非常轻量占用的资源比较少、其架构内容是开源免费的、会根据当时的请求量对虚拟容器进行弹性的伸缩、K8S中的内部模块全部是负载均衡的状态。
在这里插入图片描述

二、K8S架构介绍

(一)、borg架构的介绍

说道K8S就必须要讲讲其前辈:borg系统。这样才可以让我们更好的了解K8S架构。
在这里插入图片描述
这是一张borg系统的架构图。
1.其中,最为重要的是整个系统的首脑:BorgMaster;所有外部请求都要由BorgMaster接收并分配给旗下的Borglet进行处理。
并且BorgMaster实现了高可用,一般会有奇数个BorgMaster的节点副本。
在这里插入图片描述
2.Borglet则是处理所分配下来任务的最小的节点单元。
在这里插入图片描述
3.scheduler是一个调度器,BorgMaster是通过scheduler将任务发送给Paxos键值对数据库中。而Borglet中在Paxos中进行监听,一旦监听到派发的任务就会从数据库中接收进行处理。
在这里插入图片描述
在这里插入图片描述
4.外部可以通过web网页、命令、一些配置文件对Borg系统进行访问。
在这里插入图片描述

(二)、Kubernetes架构组件的介绍

在这里插入图片描述
整个K8S架构主要分为两大部分:1.master部分。2.node节点部分。

在这里插入图片描述
node节点部分:
在这里插入图片描述

1.master部分中:其中最为重要的是 api server
在这里插入图片描述
其作用是:所有的请求、访问等通信的入口内容都需要交给api server。所以其工作量非常之大。

2.scheduler:其作用与Borg系统作用一致,都是对工作节点分配任务的作用,然而正如刚才所说的,scheduler并不是直接将任务交给节点而是将任务发送给api server,再由api server将任务交给键值对数据库ETCD,之后节点接收任务进行工作。

3.replication controller(控制器):其作用是维护设定好的副本期望值。简单点就是维持正常的容器数量的作用。

4.这里简单介绍一下为etcd数据库:etcd数据库是一种可信赖的分布式键值存储服务,其自带群集工作模式,无需调度器管理。而且支持数据持久化功能。储存K8S集群所有重要信息。

2.node节点部分:node节点部分需要的组件有:kubelet、kube proxy和容器(docker)。
在这里插入图片描述
kublet:其作用是管理pod的生命周期,即通过管理容器来生成或消灭一个容器。
kube proxy:作用是负责pod之间的通信和负载均衡的作用。其通过操控防火墙来管理pod之间端口的映射。

(三)、其他组件的介绍

1.CoreDNS:简单点说就是将pod中运行的IP地址与域名建立对应关系。在维护和管理时可以通过输入域名来管理pod。

2.DashBoard:给 K8S 集群提供一个 B/S 结构访问体系。

3.Ingress Controller:是实现网络七层代理作用,通过域名进行负载均衡。

4.Federation:对多个K8S集群的管理。

5.Prometheus(普罗米修斯):为整个K8S集群提供监控作用。
6.Elk:提供 K8S 集群日志统一分析介入平台。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐