Kubernetes源码-pkg-01-wait-定时(条件)轮询库前言在前面的主要组件分析过程中,有数次提及到的wait库让我记忆犹新,这是一个被高频引用的库,各个主要组件如scheduler、controller、kubelet等都常常使用wait库中的function轮询间隔(或条件)触发执行 ...
Kubernetes源码学习-APIServer-P4-APIServer的鉴权机制
前言在上一篇APIServer-P3-APIServer的认证机制中,讲述了请求进入后的认证过程,在通过认证之后,请求将进入鉴权环节,本篇就此展开。 审查请求属性Kubernetes 仅审查以下 API 请求属性: 用户 - 身份验证期间提供的 user 字符串。 组 - 经过身份验证的用户所属的 ...
Kubernetes源码学习-APIServer-P3-APIServer的认证机制
前言在上一篇APIServer-P2-启动流程中,把APIServer预启动、加载配置、启动 的流程大致过了一遍,其中也有提到,APIServer的认证机制分为多种,以组合的形式遍历认证,任一机制认证成功,则判定请求认证成功,顺利进入下一个授权判定的环节。那么在本篇,就来详细看看这些认证机制。 Ku ...
Kubernetes源码学习-APIServer-P2-启动流程
前言在前一篇开胃菜-基础结构信息对APIServer各类基础信息、结构铺垫的基础上,开始进入APIServer源码的探讨环节。本篇拆分为 预启动、启动种两部分来分析。 预启动资源注册前面的基础篇有讲过,scheme是一种内存型的注册表,提供给各类gvk进行注册。在APIServer http服务启动 ...
Kubernetes源码学习-APIServer-P1-基础结构信息
前言APIServer的工作主要围绕着对各类资源对象的管控,因此,在开始阅读APIServer的源码之前,有必要笼统地列举一下它在运行中所用到的核心数据结构等基础性信息,当作是开胃菜篇吧。 Group/Version/Kind/Resource在K8s的设计中,resource是其最基础、最重要的概 ...
Kubernetes源码学习-APIServer-总览篇
APIServer源码分段阅读导航 开胃菜-基础结构信息 APIServer的启动流程 APIServer的认证机制 APIServer的授权机制 概述APIServer提供了 k8s各类资源对象的CURD/watch、认证授权、准入控制等众多核心功能,在k8s中定位类似于大脑和心脏,它的 ...
《 Kubebuilder v2 使用指南 》-P8-踩到的坑
前言一路下来踩了不少坑,有一些没有印象了,还有印象的就记录下来,想起来再补充. metadata.resourceVersion: Invalid value: 0x0: must be specified for an update对unit执行scale的时候报错: #~ kubectl sca ...
《 Kubebuilder v2 使用指南 》-P7-本地调试和发布Controller
本地调试和发布Controller前言前面几篇已经完成了初步的代码编写,但随后还需要 调试测试 –> 正式发布 到K8s集群内。这个步骤是官方文档内简笔带过的,极易带来困扰,写代码很难一气呵成,总会有error需要调试,但不可能每次为了调试一两行代码或加个打印输出,重复进行打镜像、推镜像、重启 ...
《 Kubebuilder v2 使用指南 》-P6-CRD Admission Webhook
CRD Admission Webhook前言前面的文章中,实现了Unit资源对象实例持久化之后的controller管理的过程。除此之外,Kubernetes额外支持了一些很有趣且实用的功能,例如经常被用在资源准入控制上的Adminssion Webhook,它是对APIServer接收准入请求的 ...
《 Kubebuilder v2 使用指南 》-P5-实现CRD控制逻辑
实现CRD控制逻辑前言上一篇已经设定了Unit所要实现的目标,完成了Unit结构体各子字段、ownResource字段的填充,为控制逻辑的实现做了基础铺垫。 本篇主要解决和实现的控制逻辑: 如何管理Unit下属的own Resources 如何使Unit和own Resources生命周期绑定 删 ...