首页 > 其他分享 >尚硅谷_组件说明

尚硅谷_组件说明

时间:2023-02-07 11:14:20浏览次数:40  
标签:server 说明 api 集群 etcd 组件 硅谷 k8s 我们

导言

好,接着呢我们去进行第三部分的讲解,也就是我们的组件说明,那整个k8s的框架还是非常庞大的,对吧?那我们要对它有一个非常高的了解以后,我们再去安装我们的k8s才会有一个比较好的效果。好,那对于我们的k8s来说,你可以理解为它的前身是我们的博格系统,对吧?采用go语言的编译版或叫重构版。好,那就意味着如果我们先去了解我们的博格系统,再转而去看我们的 k8s,整个调度系统的话,那可能会帮助我们更加强一部分了解,对吧?


博格的架构

好,那我们首先我们看一下我们的博格的架构,那这张图呢就是显示我们的博格的谷歌的博格的这么一个调度器的这么一个架构,那首先你会发现这里有一堆的borgmaster和borglet对吧?由两部分去组成。

好,那borgmaster就是专门去负责这些所谓的请求的分发的,你可以理解为它是整个集群大脑对吧?那真正工作的节点其实是我们的borglet,也就如果有对应的容器要运行的话,比如有一些计算能力对吧?它是通过我们的borglet去给他提供的,需要大家注意一下,在这里他给他去提供对吧?

好,那为了防止我们的borgmaster由于单节点故障,所以你会发现这里有很多的副本,并且这个副本数目其实是有讲究的,需要注意一下。

 

 

 

你仔细数一下12345,5个,那我问大家一个问题,可以是两个吗?可以是4个,嘛可以是6个。那这里为什么要这样去给大家描述?因为对于我们的高可用集群来说,一般我们要满足这么一个需求,就是它最好是13579,听明白我意思吗?会叫3579,最好大于一对,因为一个节点是不是就产生我们单节点故障了?那为什么要这样选择?防止有一天出现,比如你两票我两票,那咱俩谁是老大呢?那如果有三个人同时过来投票的话,肯定不会出现这种状态。

 

能理解我有意思吗?所以对于我们的高可用集群来说,它的调度器或它的高可用节点最好保持在三个以上,基数也就3579比较合适。好,这个是需要我们特别注意的。

集中访问方式

并且你会发现这里有这么集中访问方式对吧?那第一种是通过我们的浏览器,命令行,以及我们的一些文件的读取,那在我们的k8s里呢也会有这么几种方式进行所谓的整个调度集群的管理。好,那这种三种方式会被接入到我们的borgmaster,他去请求以后再去做分发,那分发这个概念很重要对吧?

也就请求过来以后,我要把这个任务交给谁去处理。

scheduler

那假设我现在就是一个包工头,对吧?那有一些任务过来了,比如唉把什么钢筋扛到几楼,把什么砖扛到几楼对吧?那我要去安排一些我的工人去干这件事情,那对于我来说呢就是这么一个组件。scheduler?scheduler,也就是我们的调度器,那所有的任务在到这里以后被会被分发分发至不同的节点去运行。当然这里并不是我们的 schedule去跟我们后面的borglet交互,而是schedule把数据写入至paxos,这是我们谷歌的这么一个键值对的这么一个数据库,他去存储,并且borglet呢会实时的在这里paxos这么一个数据库里进行监听,如果发现,唉有我的请求了,那我会把这个请求取出来,又叫消费对吧?

去处理这些任务,达到这么一个流程目的。

 

 






好,那这个呢就是我们的博格系统的这么一个示意图了,那也意味着对于我们的k8s它的更新版或叫精良版,对吧?好,那它是不是应该也是跟它类似的

k8s

 

 

 

 

所以接下来我们看这么一张图,这是我们的k8s的这么一个架构图,里面的一些重要组件,我也画在这里了,对吧?那在这里呢它会分为 CS结构,一个是我们的 master服务器,

 

 

 

一个是我们的 node的节点

 

 

 

 

那也就意味着在这里它跟我们的 borgmaster一样,它也是我们的一个领导者,对吧?

也是我们的领导者头头。

那在这里的所有的note呢就是我们的工人了,执行者。那我们先看一下对于我们的领导者里面他有哪些东西。

schedule

第一个schedule,虽然是一个调度器,任务过来以后,我还需要通过schedule把这些任务分散至不同的note里,但这里需要注意一下,我们刚才给大家说的是在博格系统,在这里schedule会写入到我们的pasos数据库中,那在这里呢做了一些更改,什么更改呢就是schedule把任务交给我们的api server,api server再去负责把这个请求写入到etcd,也就意味着schedule,并不会跟我们的etcd直接交互,需要注意一下。

 

 

RC

那在这里呢还会有一个RC(replication controller)那我们把它叫做控制器,他们就是维护我们的副本的数目呢或叫做我们的期望值的。那举个例子,我想让这个容器运行几个副本对吧?那就是由他去控制的,一旦他的副本数不满足我的期望值了,那这个 RC呢要负责把这个副本数改写到我们的期望值,或叫申请到我们的期望值,也就是创建对应的pod的或删除对应的pod.需要注意一下。

api server

好,那 api server就是我们的主服务器里面最后一个组建了对吧?那它呢讲白来说就是我们一切的服务的访问的入口,你会发现schedule,需要跟我们api server交互交互,我们的RC需要跟api server交互,kubectl呢是我们的命令行管理工具,它也需要跟我们的api server会进行交互,web UI呢也需要跟api server进行交互,包括etcd所以你会发现这里的api server是非常繁忙的,对吧?

那为了减轻他的压力,每个组件其实还可以在本地生成一定的缓存,并不需要每件事情都到api server去申请,需要注意一下。



etcd

 

api server我在进行了请求以后呢会去操作 etcd。 EtCT在我们的k8s集群里呢就比较类似于在这里的paxos这么一个键值对系统了。那 Etcd呢是Carlos公司开源的这么一个项目,采用go语言编写,键值对数据库,那在这里呢起到了整个k8s集群的这么一个持久化的方案。并且etcd还有一些东西需要给大家讲一下,我们可以看这么几张图,第一个 epc官方将它定位一个可信赖的分布式键值对存储服务。

那这里说说明一下什么叫可信赖。那为了官方让这个所谓的etct能够持久化的话,不会造成单节点故障,所以它天生支持集群化,并不需要其他的组件参与进来,它就能实现自己的集群化方案。需要注意一下,它不像我们mysql对吧?如果你想实现一个读写分离的话,那还需要介入到阿米巴等一些中间件,在这里不需要,本身可以完成。分布式键值存储服务也就意味着可以扩容说非常方便对吧?键值存储,kv结构需要注意一下,好。协助我们分布式集群正常运转,这里的正常运转的含义就是保存我们的整个分布式集群的需要持久化的配置文件配置信息,那一旦我们集群死亡以后,可以借助到etcd里面的一些信息进行所谓的数据恢复,那这就是edcd在我们的k8s集群的一个定位。


 

还有需要注意一下,在我们的k8s的集群中,我们会使用etcd作为持续化方案,但对于etcd来说,它的存储有两个版本,一个是VR版,一个是v三版,这两个版本是我们还在用的,VR版会把所有的数据全部写入到我们的内存中,v三版会引入一个本地的券的持久化操作,也就意味着关机以后并不会造成数据损坏,会从我们的本地磁盘进行恢复。那理论上我们是不是应该选择v三版,因为这样不会造成数据丢失对吧?但需要注意一下

1.11版包括之前他自带的etcd是没有 v三版的,也就那时候还不支持v三版,需要注意一下,那我们现在安装的已经是1.15.1的最新稳定版了,所以这个问题是不需要我们去思考的了。

 

 

 

那万一你的集群是一个非常古老的集群,对吧?那还在使用1.11版之前的版本,那你就需要注意一下对etcd进行我们的备份操作,需要注意一下。

标签:server,说明,api,集群,etcd,组件,硅谷,k8s,我们
From: https://www.cnblogs.com/cj8357475/p/17097710.html

相关文章

  • 一个广告轮播组件 BGABanner-Android
    [img]http://dl2.iteye.com/upload/attachment/0118/4969/35eb64de-a738-3bdb-91d1-6770162d2795.gif[/img][img]http://dl2.iteye.com/upload/attac......
  • DTCloud开源社区模块介绍说明
    模块介绍DTCloud开发者社区,赋能开发者,共建企业应用市场。DTCloud开源社区模块,即dt_open_source_community,为本地开发者,登陆开发者社区,购买应用提供了便利。启动流程1......
  • drf视图组件,视图集,路由系统,认证组件
    上周回顾#1前端开发模式-分离和混合-http通信后端都是web后端-前端:pc桌面开发,web开发,app,小程序--->http--->调用后端--->后端都是一套#2api接口......
  • drf9个视图子类,2个视图集,路由系统,认证组件
    上周内容大回顾前后端开发模式前后端混合模式 1.前端写好交给后端用后端模板语法,把数据补上去2.前后端全栈,都有一个人写前后端分离 1.前端写前端,后端就只写接口......
  • 9视图子类 2个视图子类 路由系统自动生成路由 action装饰器 认证组件登入接口
    目录回顾9个视图子类2个视图集通过ModelViewSet编写5个接口通过ReadOnlyModelViewSet编写2个只读接口ViewSetMixin源码分析fromrest_framework.viewsets包下的类视图层大......
  • drf之认证组件
    目录认证组件登录接口认证功能认证组件访问某个接口,需要登录后才能访问编写模型表classUser(models.Model):username=models.CharField(max_length=32)pa......
  • 9 个视图子类、视图集、路由系统、认证组件
    9个视图子类、视图集、路由系统、认证组件9个视图子类#两个视图基类APIViewGenericAPIView1.APIView执行流程:新的request,三大认证,全局异常重写了as_vi......
  • DRF - 视图组件
    视图组件drf的视图,视图类学过APIViewdrf的基类,drf提供的最顶层的类0、APIView与Django原生的View类的区别1.APIView中传入视图方法中的Request对象是RESTframework......
  • 52.Toad for Oracle 使用说明
    一.Toad功能综述 二.系统需求 三.安装指南 四.快速入门 1.Schemabrowser的用法简介 2.SQEditor的使用介绍 3.ProcedureEditor的用法介绍 4.如何进行PLSQL的debug 5.如何......
  • def 认证组件
    目录drf认证组件登录接口viewsmodelsurlsdrf认证组件登录接口viewsfromrest_framework.viewsetsimportViewSetfromrest_framework.decoratorsimportactionfr......