0%

ApiServer作为 Kubernetes 的核心组件,让集群中所有资源可被描述和配置,即包括了pod、ingress、pvc这些基础资源,也包括deployment、rc、hpa等管理对象;ApiServer就像是一个包含一定逻辑的对象数据库代理;提供了RESTful API接口,其他组件或客户端可以通过该接口获取集群中资源对象的配置和状态,以实现各种逻辑处理;ApiServer本身是无状态的,集群所有的数据都会存储在ETCD中,各个组件对于资源对象的List-Watch机制都要通过 ApiServer 的验证授权和准入。

kube-apiserver 是 kubernetes 中与 etcd 直接交互的一个组件,其控制着 kubernetes 中核心资源的变化。它主要提供了以下几个功能:

  • 提供 Kubernetes API,包括认证授权、数据校验以及集群状态变更等,供客户端及其他组件调用;
  • 代理集群中的一些附加组件组件,如 Kubernetes UI、metrics-server、npd 等;
  • 创建 kubernetes 服务,即提供 apiserver 的 Service,kubernetes Service;
  • 资源在不同版本之间的转换;
阅读全文 »

千年以来人们一直梦想有一个世界级的图书馆,在这个图书馆里能够存放世界上所有出版过的印刷在纸上的知识。可以预见,如果是实体的图书馆这种想法将很难实现。但是,随着信息化时代的到来,全世界所有知识的电子化是可以实现的。Google在2002年就启动了一个「Project Ocean」计划,用以扫描所有的图书,建立一个统一的世界数字图书馆。

然而,经过十年的发展,这个计划却最终在一阵喧嚣中戛然而止。这里是「朝花夕拾」第二十一期,本期话题来自于最近听的「Blow Your Mind」的一期播客。

阅读全文 »

Informer模块是Kubernetes中的基础组件,负责各组件与Apiserver的资源与事件同步。List/Watch机制是Kubernetes中实现集群控制模块最核心的设计之一,它采用统一的异步消息处理机制,保证了消息的实时性、可靠性、顺序性和性能等,为声明式风格的API奠定了良好的基础。

阅读全文 »

Podcast 在我最近的生活中占据了很大的部分,每天走在上下班的路上,带着耳机,听播客中主播与嘉宾的聊天,会觉得是难得自在和舒适的时间。有时候聊到有意思的地方,自己也不禁乐了起来;有时候听到一些新的观点或者事情,自己也好像恍然大悟;或者有时候自己一直以来的感受被主播们说了出来,感同身受豁然开朗。

「得意忘形」是最近听的比较多的一个播客,他的风格偏务虚,更新也并不太频繁,拖更的现象也常有。但是翻看「得意忘形」两年前录的播客,现在听来很多还是觉得会有启发性。毕竟,他关注的是自我与世界这个主题:我到底是一个什么样的人,我作为人整个系统是如何运作的,我与外界是如何产生交互,到底是什么影响了我对这个世界的看法。

「得意忘形」是一个主张追求个体自由与探寻真理的媒体计划。我们见证了第一次工业革命以来科技对人类社会的极大推动与助益,但也意识到资本主义与市场经济不可避免地催生了消费文化、剥夺了个人价值、并窃取了大众时间。带着对生命的有限性与无目的性的敬畏,我们试图为读者与听众提供更全面的觉察自我与认知世界的工具,以不断重建当下的方式穿越时间、抵达生活的本质。

这里是「朝花夕拾」第二十期,选题来自于最近听「得意忘形」两年前的一期:「快乐」到底是什么东西?选择「得意忘形」作为这期的题目,是因为我非常喜欢得意忘形这个词本来描述的那种 in the zone的状态。这一次,我们再聊聊关于「快乐」的问题。

嗜酒能啸,善弹琴。当其得意,忽忘形骸。 —— 《晋书·阮籍传》

阅读全文 »

Kubernetes Scheduling Framework 是在Kubernetes 1.15版本后新出现的一种调度框架。Scheduling Framework 在原有的调度流程中, 定义了丰富扩展点接口,开发者可以通过实现扩展点所定义的接口来实现插件,将插件注册到扩展点。Scheduling Framework 在执行调度流程时,运行到相应的扩展点时,会调用用户注册的插件,影响调度决策的结果。通过这种方式来将用户的调度逻辑集成到 Scheduling Framework 中。

阅读全文 »

当我们学习一门新的编程语言时,你需要设置好编程环境,然后打印出Hello World,接下来就可以学习各种语法规则了。与编程一样,搬进出租屋后,我也很快配置好了各种厨具和基本的柴米油盐,具备了条件一道最简单饭菜的条件。但是,学习编程并不仅仅只是为了打印Hello World,你还需要学习各种语法规则,编程技巧,甚至一些「语法糖」,让你的编程更加自然流畅。对于下厨而言,我们的菜谱就像语法规则,而那些调味料就是我们的语法糖。用好调料可以为我们制作出酸甜麻辣咸等各种美味的口感,还可以为饭菜增色增香。本期是「吃顿好的」第一篇,用于介绍生活中常见的各种调料的功能与用法,内容转自「美食作家王刚」。

阅读全文 »

调度器(Scheduler)是 Kubernetes 的核心组件,它的主要功能是为待运行的工作负载 Pod 绑定运行的节点 Node。从最早基于谓词和优先级(Predicates and Priorities)的调度器,到 V1.15基于调度框架(Scheduling Framework)的调度器,Kubernetes的调度器正在快速演进,以满足不同场景对于资源调度的需求。

本文是「Kubernetes解读」的第二篇,本篇将首先介绍Kubernetes Scheduler的背景和它的演进过程,然后会通过 Kubernetes 1.16 版本分析基于谓词与优先级的调度器原理。在「Kubernetes解读」的第三篇 Scheduling Framework 中,我将通过 Kubernetes 1.18 版本分析基于Framwork的调度器原理。

阅读全文 »