摘要: 前言 之前探讨scheduler的调度流程时,提及过preempt抢占机制,它发生在预选调度失败的时候,当时由于篇幅限制就没有展开细说。 回顾一下抢占流程的主要逻辑在DefaultPreemption.preempt方法,步骤包括: 拿最新版本的pod,刷新lister的缓存 确保抢占者有资格抢占其 阅读全文
posted @ 2021-10-09 16:34 猴健居士 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 前言 上一篇说道k8s-apiserver如何启动,本篇则介绍apiserver启动后,接收到客户端请求的处理流程。如下图所示 认证与授权一般系统都会使用到,认证是鉴别访问apiserver的请求方是谁,一般情况下服务端是需要知晓客户端是谁方可接受请求,除了允许匿名访问这种场景,同时认证也为后续的授 阅读全文
posted @ 2021-10-06 09:27 猴健居士 阅读(1826) 评论(0) 推荐(0) 编辑
摘要: 前言 apiserver是k8s控制面的一个组件,在众多组件中唯一一个对接etcd,对外暴露http服务的形式为k8s中各种资源提供增删改查等服务。它是RESTful风格,每个资源的URI都会形如 /apis/{apiGroup}/{version}/namsspaces/{ns-name}/{re 阅读全文
posted @ 2021-10-04 15:59 猴健居士 阅读(1911) 评论(0) 推荐(0) 编辑
摘要: 前言 当api-server处理完一个pod的创建请求后,此时可以通过kubectl把pod get出来,但是pod的状态是Pending。在这个Pod能运行在节点上之前,它还需要经过scheduler的调度,为这个pod选择合适的节点运行。调度的整理流程如下图所示 本篇阅读源码版本1.19 调度的 阅读全文
posted @ 2021-10-03 09:22 猴健居士 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 前言 前文介绍Pod无论是启动时还是关闭时,处理是由kubelet的主循环syncLoop开始执行逻辑,而syncLoop的入参是一条传递变更Pod的通道,显然syncLoop往后的逻辑属于消费者一方,如何发现Pod的变更往通道里面传递变更消息的一方目前还没明朗,故本次来看一下kubelet是如何发 阅读全文
posted @ 2021-10-02 08:53 猴健居士 阅读(872) 评论(0) 推荐(1) 编辑
摘要: 上一篇说到kublet如何启动一个pod,本篇讲述如何关闭一个Pod,引用一段来自官方文档介绍pod的生命周期的话 你使用 kubectl 工具手动删除某个特定的 Pod,而该 Pod 的体面终止限期是默认值(30 秒)。 API 服务器中的 Pod 对象被更新,记录涵盖体面终止限期在内 Pod 的 阅读全文
posted @ 2021-10-01 08:07 猴健居士 阅读(1094) 评论(0) 推荐(1) 编辑
摘要: 前文说到Kubelet启动时,调用到kubelet.Run方法,里面最核心的就是调用到kubelet.syncLoop。它是一个循环,这个循环里面有若干个检查和同步操作,其中一个是地在监听Pod的增删改事件,当一个Pod被Scheduler调度到某个Node之后,就会触发到kubelet.syncL 阅读全文
posted @ 2021-09-30 08:27 猴健居士 阅读(1490) 评论(0) 推荐(0) 编辑
摘要: kubelet是k8s集群中一个组件,其作为一个agent的角色分布在各个节点上,无论是master还是worker,功能繁多,逻辑复杂。主要功能有 节点状态同步:kublet给api-server同步当前节点的状态,会同步当前节点的CPU,内存及磁盘空间等资源到api-server,为schedu 阅读全文
posted @ 2021-09-29 09:17 猴健居士 阅读(2870) 评论(0) 推荐(0) 编辑
摘要: 经过前两篇的学习与实操,也大致掌握了一个k8s资源的Controller写法了,如有不熟,可回顾 自己实现一个Controller——标准型 自己实现一个Controller——精简型 但是目前也只能对k8s现有资源再继续扩展controller,万一遇到了CRD呢,进过本篇的学习与实操,你就懂了。 阅读全文
posted @ 2021-09-22 11:28 猴健居士 阅读(1533) 评论(0) 推荐(2) 编辑
摘要: 标准Controller 上一篇通过一个简单的例子,编写了一个controller-manager,以及一个极简单的controller。从而对controller的开发有个最基本的认识,但是细心观察前一篇实现的controller仅仅是每次全量获取了所有资源,虽然都是从缓存中获取速度是比较快的,如 阅读全文
posted @ 2021-09-21 08:11 猴健居士 阅读(803) 评论(0) 推荐(0) 编辑
摘要: 写在最前 controller-manager作为K8S master的其中一个组件,负责众多controller的启动和终止,这些controller负责监控着k8s中各种资源,执行调谐,使他们的实际状态能不断趋近与期望状态。这些controller包括servercontroller,nodec 阅读全文
posted @ 2021-09-20 08:05 猴健居士 阅读(917) 评论(0) 推荐(0) 编辑
摘要: 一个监控及告警的系统,内含一个TSDB(时序数据库)。在我而言是一个数采程序 重要成员分三块 exploter:实际是外部接口,让各个程序实现这个接口,供普罗米修斯定时从此接口中取数 alert:告警模块 prometheus:实际上是数采模块+存储模块,但是它的存储不是持久化的 普罗米修斯的数据是 阅读全文
posted @ 2019-01-25 08:32 猴健居士 阅读(832) 评论(0) 推荐(0) 编辑
摘要: Docker的容器环境实际上是借助类Linux命名空间,将各种系统资源按照容器不同划分了不同的命名空间进行隔离,为各个进程提供独立的运行环境关键概念:容器,镜像两个概念一起看,镜像好比平常系统中的各个可执行文件exe,每个可执行文件都会通过一个进程运行起来,容器则好比进程。镜像有镜像仓库,好比各大应 阅读全文
posted @ 2019-01-22 08:32 猴健居士 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 在正式讲述虚拟内存之前需要提及存储器的层级结构以及进程在内存中的结构。 存储器的层级结构速度从快到慢排列如下 寄存器——L1高速缓存——L2高速缓存——L3高速缓存——主存——磁盘——分布式文件系统 而成本也是从高到低,空间是从低到高。 两个相邻的存储设备,前者往往是充当后者的高速缓存,后者往往存储 阅读全文
posted @ 2018-09-03 13:29 猴健居士 阅读(948) 评论(0) 推荐(0) 编辑
摘要: Windows的gcc环境,往官网http://sourceforge.net/project/showfiles.php?group_id=2435 下载MinGW,安装,安装完毕后按照包 配置环境变量 a.在PATH的值中加入"C:\Program Files\MinGWStudio\MinGW 阅读全文
posted @ 2017-09-19 08:39 猴健居士 阅读(3188) 评论(0) 推荐(0) 编辑
摘要: 先看这段代码 通过指针可以直接访问内存,而在C#中这属于不安全操作,为了能让代码编译运行因此都要带上unsafe,这个不用管它。这段代码主要是借助单字节数据类型byte,直接访问内存,查看各种数据类型的数据在内存的存放情况。在往常认为整数0,1,2,3,4,5……之类的存放在内存的就是转换成二进制再 阅读全文
posted @ 2017-05-25 08:23 猴健居士 阅读(792) 评论(0) 推荐(3) 编辑
摘要: 专用线程 计算限制的异步操作 CLR线程池,管理线程 Task 协作式取消 Timer await与async关键字 IO限制的异步操作 Windows的异步IO APM(APM与Task) EAP 专用线程 当初学习多线程编程的时候,第一步就是怎么去开一条新的线程,就是new一个Thread的实例 阅读全文
posted @ 2017-04-10 13:00 猴健居士 阅读(4193) 评论(0) 推荐(0) 编辑
摘要: 先从传统的Windows进程说起,传统的进程用来描述一组资源和程序运行所必需的内存分配。对于每个被加载到内存的可执行程序,在她的生命周期中操作系统会为之单独且隔离的进程。由于一个进程的失败不会影响其他的进程,使用这种方式,运行库环境将更加稳定。 而一个.NET的应用程序并非直接承载于一个传统的Win 阅读全文
posted @ 2017-02-21 08:18 猴健居士 阅读(3113) 评论(1) 推荐(0) 编辑
摘要: 多线程内容大致分两部分,其一是异步操作,可通过专用,线程池,Task,Parallel,PLINQ等,而这里又涉及工作线程与IO线程;其二是线程同步问题,鄙人现在学习与探究的是线程同步问题。 通过学习《CLR via C#》里面的内容,对线程同步形成了脉络较清晰的体系结构,在多线程中实现线程同步的是 阅读全文
posted @ 2017-01-19 12:13 猴健居士 阅读(2592) 评论(4) 推荐(1) 编辑
摘要: 本篇的内容在MSND中标注已是一项旧技术,而取而代之的是WCF, 那么我也放弃吧!但是这个属于Web服务的范畴,而WCF本质上也是一个Web服务来的,所以对于基础的东西还是不变的。那么这次就着重看看这个Web服务的基础知识。 首先还是形式上的列举一下webServices配置节的内容,尽管它现在没用 阅读全文
posted @ 2016-12-25 14:54 猴健居士 阅读(811) 评论(0) 推荐(0) 编辑
摘要: web部件是ASP.NET WebForm里面的服务器控件,它涵盖的内容比较多,鉴于这种状况的话鄙人不打算深究下去了,只是局限于了解web.config配置里面的配置内容则可。 那么也得稍微说说啥是Web部件。引用MSDN的话:ASP.NET Web 部件是一组集成控件,用于创建网站使最终用户可以直 阅读全文
posted @ 2016-12-23 12:49 猴健居士 阅读(2166) 评论(0) 推荐(0) 编辑
摘要: 此配置节只有一个属性——mode,该特性为 ASP.NET 应用程序指定 XHTML 呈现模式。它包含三个值 要让此配置生效,需要把<pages>配置节中的controlRenderingCompatibilityVersion 特性设置为 3.5 或网站针对 ASP.NET 3.5 或早期版本。否 阅读全文
posted @ 2016-12-13 08:00 猴健居士 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 网上有用的资料不多,在一本电子书中摘抄了内容如下 webControls配置节只有一个clientScriptsLocation属性,此属性用于指定ASP.NET客户端脚本的默认存放路径。这些文件是包含在HTML代码生成的ASPX页面时这些需要的客户端功能,如智能导航和客户端控件验证。 <webCo 阅读全文
posted @ 2016-12-12 08:32 猴健居士 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 此配置节的作用就是往Web程序中添加URL的映射,从而达到用户访问映射后的URL(如/Page/AAA)也能访问到源URL(如/Page/PageAAA.aspx)的效果。这也是URL映射本来的作用。 详细配置如下 其中要启用这个URL映射的必须要把enabled设置成true,add和remove 阅读全文
posted @ 2016-12-08 12:10 猴健居士 阅读(2261) 评论(0) 推荐(0) 编辑
摘要: 首先开篇引用《MVC2 2 in action》里面一段关于这个跟踪服务的话 When you called Trace.Write() in Web Forms, you were interacting with the Trace- Context class. This exists on 阅读全文
posted @ 2016-12-02 09:22 猴健居士 阅读(1955) 评论(0) 推荐(1) 编辑
摘要: ASP.NET 站点导航主要由与站点地图数据源通信的站点地图提供程序以及公开站点地图提供程序的功能的类构成。ASP.NET 站点导航使您能够将到您所有页面的链接存储在一个中心位置,并通过包含一个用于读取站点信息的 SiteMapDataSource 控件以及用于显示站点信息的导航 Web 服务器控件 阅读全文
posted @ 2016-11-29 08:37 猴健居士 阅读(583) 评论(0) 推荐(0) 编辑
摘要: HTTP 是一种无状态协议。这意味着 Web 服务器会将针对页面的每个 HTTP 请求作为独立的请求进行处理。ASP.NET 会话状态将来自限定时间范围内的同一浏览器的请求标识为一个会话,并提供用于在该会话持续期间内保留变量值的方法。默认情况下,将为所有 ASP.NET 应用程序启用 ASP.NET 阅读全文
posted @ 2016-11-26 11:22 猴健居士 阅读(1426) 评论(0) 推荐(0) 编辑
摘要: 这个配置节甚是简单,在MSDN中的介绍也甚是简单:为 ASP.NET 应用程序配置页的视图状态设置。 historySize的作用是设置要存储在页历史记录中的项数。 但是这根本是看不明白他是干嘛的,百度上一大串都是单纯说说配置节的意思,根本没再进一步阐述他的作用,我就不信其他人都懂了。还好有谷歌。看 阅读全文
posted @ 2016-11-19 10:53 猴健居士 阅读(662) 评论(0) 推荐(1) 编辑
摘要: securityPolicy配置节是定义一个安全策略文件与其信任级别名称之间的映射的集合。配置如下所示 其中name是指定映射到策略文件的命名的安全级别,一般的值有Full,Hight,Medium,Low,Minimal,UserDefined;policyFile指的是当前安全级别中对应的配置文 阅读全文
posted @ 2016-11-16 23:24 猴健居士 阅读(1830) 评论(0) 推荐(1) 编辑
摘要: 配置 Microsoft Internet 信息服务 (IIS) Web 服务器上的 ASP.NET 进程模型设置。其作用是配置IIS或IIS中的应用程序池(IIS7及以后版本)的安全性,性能,健壮性,可靠性。 processModel 节只能在 Machine.config 文件中进行设置,它影响 阅读全文
posted @ 2016-11-13 23:15 猴健居士 阅读(3391) 评论(0) 推荐(2) 编辑
摘要: 全局定义页特定配置设置,如配置文件范围内的页和控件的 ASP.NET 指令。能配置当前Web.config目录下的所有页面的设置。 与Pages上的部分设置可以在单独页面上通过@Page指令进行设置,Pages配置节的属性是@Page指令的子集,两者的属性说明则参考MSDN《pages 元素(ASP 阅读全文
posted @ 2016-11-06 21:27 猴健居士 阅读(3794) 评论(0) 推荐(0) 编辑
摘要: 此配置节的作用在于指定各种控件在不同类型的移动设备显示的适配器,以达到适应各种设备不同的展示形式。例子如下, 实际上这也是本配置节的默认配置的精简版。 各个节点和属性含义如下 device节点中,通过predicateClass中指定的类里面的predicateMethod指定的方法来判定当前这个设 阅读全文
posted @ 2016-11-02 08:59 猴健居士 阅读(581) 评论(0) 推荐(0) 编辑
摘要: membership成员资格是ASP.NET 成员资格为您提供了一种验证和存储用户凭据的内置方法。因此,ASP.NET 成员资格可帮助您管理网站中的用户身份验证。它包含以下功能 创建新用户和密码。 将成员资格信息(用户名、密码和支持数据)存储在 Microsoft SQL Server、Active 阅读全文
posted @ 2016-10-26 09:03 猴健居士 阅读(1287) 评论(2) 推荐(0) 编辑
摘要: 配置 ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求,配置节及其描述如下所示。 <httpRuntime executionTimeout="110" 指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数 maxRequestLength="4096" 阅读全文
posted @ 2016-10-13 08:32 猴健居士 阅读(3531) 评论(2) 推荐(0) 编辑
摘要: ASP.NET HTTP 处理程序是响应对 ASP.NET Web 应用程序的请求而运行的过程(通常称为"终结点")。最常用的处理程序是处理 .aspx 文件的 ASP.NET 页处理程序。用户请求 .aspx 文件时,页通过页处理程序来处理请求。 ASP.NET 页处理程序仅仅是一种类型的处理程序 阅读全文
posted @ 2016-09-25 10:43 猴健居士 阅读(2433) 评论(1) 推荐(0) 编辑
摘要: httpModules是往当前应用程序添加HttpModule(http模块)的标签。配置节如下 提起httpModule不得不提一下Http请求处理流程 ASP.NET对请求处理的过程: 当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之 阅读全文
posted @ 2016-09-24 16:53 猴健居士 阅读(2000) 评论(0) 推荐(0) 编辑
摘要: Web 应用程序使用的 Cookie 个人认为这里设置的cookie与访问cookie的安全性关联大一点,配置节如下 httpOnlyCookies:默认是false,作用是是否禁用浏览器脚本访问cookie。在Form认证时会颁发一个认证票写在cookie,最开始我以为这里设置了则可以访问,结果并 阅读全文
posted @ 2016-09-22 09:12 猴健居士 阅读(1849) 评论(0) 推荐(1) 编辑
摘要: 定义用来控制应用程序宿主环境的行为的配置设置。 配置如下 shadowCopyBinAssemblies:该值指示 Bin 目录中的应用程序的程序集是否影像复制到该应用程序的 ASP.NET 临时文件目录中。但纯看这句话我是一面懵懂的,幸亏看了一篇老外的文章经过自己实践才明白其作用。平时我们更新bi 阅读全文
posted @ 2016-09-21 16:36 猴健居士 阅读(2655) 评论(0) 推荐(3) 编辑
摘要: 配置针对应用程序的运行状况监视的一个服务 配置节内容比以往的较为复杂,如下 实际上这是运行状况监视是一个事件定义与处理的模型,简单来看整个运行状况监视基本点有以下三个 1.在eventMappings定义事件 2.在providers定义事件的处理 3.通过rules绑定事件给某个处理程序去处理。 阅读全文
posted @ 2016-09-20 09:09 猴健居士 阅读(1066) 评论(0) 推荐(0) 编辑
摘要: 本配置节是关于配置应用程序的全球化设置。 例如如下设置 请求时出现中文(字符编码不对),则会出现乱码,同样响应的页面中的中文也会出现乱码,正常配置时如下图所示 设置了响应编码为iso-8859-1或其他诸如此类ASCII让中文显示乱码的编码,则会出现 其响应的内容均使用了iso-8859-1而使得中 阅读全文
posted @ 2016-09-19 09:16 猴健居士 阅读(1325) 评论(0) 推荐(0) 编辑