
K8S 源码探秘
shida_csdn
Keep Running ...
展开
-
K8s 的 UUID 是如何生成的?
引言不知道各位有没有注意到,在 K8s 系统中,每个实例对象都有自己的 UID(其实就是UUID),用于唯一标识自己,比如 Pod、ConfigMap 等对象的 metadata 内都有一个叫做 uid 的字段。为什么要有这个字段呢?因为仅靠 kind/namespace/name 是没办法确定实例还是那个实例的,比如实例被重建,kind/namespace/name 等信息并不会变化,这时候就...原创 2020-03-16 10:47:12 · 5289 阅读 · 1 评论 -
Kube Proxy 工作模式对比分析
引言Kube Proxy 是 Kubernetes 生态的核心组件之一,主要负责处理访问 Service 的流量(包括通过 Cluster IP 以及 Node Port),自动将 Client 对 Kubernetes Service 的请求代理到正确的 Pod 或 Node 后端。截止 1.18 版本,Kube Proxy 能够支持的运行模式有 4 种,其平台支持情况如下表:Mod...原创 2020-03-03 10:58:45 · 1584 阅读 · 0 评论 -
Kubelet 垃圾回收
Kubelet 垃圾回收(Garbage Collection)是一个非常有用的功能,它负责自动清理节点上的无用镜像和容器。Kubelet 每隔 1 分钟进行一次容器清理,每隔 5 分钟进行一次镜像清理(截止到 v1.15 版本,垃圾回收间隔时间还都是在源码中固化的,不可自定义配置)。如果节点上已经运行了 Kubelet,不建议再额外运行其它的垃圾回收工具,因为这些工具可能错误地清理掉 Kubel...原创 2019-08-19 16:37:03 · 2109 阅读 · 0 评论 -
基于 sample-controller 实现自定义 CRD 控制器(Operator)的一般步骤
一、背景介绍 CRD 即 CustomResourceDefinition,是 kubernetes 极力推荐的资源扩展方式; 基于 CRD 技术,用户能将自定义资源注册到 kubernetes 系统,并像使用原生资源 (如 pod、statefulset )一样对自定义资源进行创建、查看、修改、删除等操作; CRD 是对 kub...原创 2019-02-20 17:58:23 · 8082 阅读 · 3 评论 -
K8S 源码探秘 之 kubelet 创建 Pod 的工作原理
一、引言 本文将从 kubelet 出发,分析 Kubernetes 中 Pod 的创建流程。 版本:1.13二、工作原理概览 kubelet 使用事件机制处理 Pod 相关事件,通过 Update Channel 传递 Pod 事件; Pod 事件源包括:文件、HTTP 以及 APIServer; ...原创 2018-12-13 17:00:25 · 1700 阅读 · 0 评论 -
K8S 源码探秘 之 kubelet 同步 Node 状态(kubelet 心跳机制分析)
一、引言 在 K8S 系统运行过程中,kubelet 需要定期向 API Server 上报节点运行状态(也就是心跳消息) 本文从源码角度分析下 kubelet 进行节点状态上报的工作机制 其实,心跳的原理比较简单,就是启动一个协程,定期向 APIServer 发送更新数据!二、源码分析 首先,来到 kubelet 入口,cmd/...原创 2018-11-20 13:34:42 · 9130 阅读 · 2 评论 -
K8S 源码探秘 之 nginx-ingress 工作原理分析
一、引言 Nginx-ingress 是 Kubernetes 生态中的重要成员,主要负责向外暴露服务,同时提供负载均衡等附加功能; 截至目前,nginx-ingress 已经能够完成 7/4 层的代理功能(4 层代理基于 ConfigMap,感觉还有改进的空间); Nginx 的 7 层反向代理模式,可以简单用下图表示: ...原创 2018-11-14 13:27:02 · 16522 阅读 · 1 评论 -
K8S 源码探秘 之 kubeadm upgrade apply 执行流程分析
一、引言 本文将基于 Kubernetes 1.12 版本,分析 kubeadm upgrade apply 的执行流程,希望对读者理解 k8s 有帮助! 关于 init 流程请参考: K8S 源码探秘 之 kubeadm init 执行流程分析 关于 join 流程请参考: K8S 源码探秘 之 kubeadm join 执行流程分析二、流...原创 2018-10-29 16:22:28 · 1252 阅读 · 0 评论 -
K8S 源码探秘 之 kubeadm join 执行流程分析
一、引言 本文将基于 Kubernetes 1.12 版本,分析 kubeadm join 的执行流程,希望对读者理解 k8s 有帮助! 关于 init 流程请参考前文: K8S 源码探秘 之 kubeadm init 执行流程分析二、流程介绍2.1 首先,上一张整体执行流程图(可以点击看大图!!!): kubeadm 在执行 jo...原创 2018-10-22 12:04:17 · 3332 阅读 · 2 评论 -
K8S 源码探秘 之 命令行解析工具 cobra
一、引言 最近开始研读 Kubernetes 源码,希望能借此更加深入地理解其运行机理! 由于 Kubernetes 代码量很庞大,我将分模块分组件地去分析和理解,并把自己的发现共享出来。 第一篇博客,先从简单的命令行解析工具 cobra 开始。二、源码解析 Kubernetes 中的组件(如 kubeadm、kubect...原创 2018-10-09 15:12:46 · 2027 阅读 · 1 评论 -
K8S 源码探秘 之 kubeadm init 执行流程分析
一、引言 kubeadm 是 k8s 重要的快速部署工具,也是其原生支持的部署工具,在实现自动化部署方面具有重要的研究价值。 本文将基于 Kubernetes 1.12 版本,分析其 init 初始化集群的执行流程,希望对读者进一步理解 k8s 有所帮助!二、流程介绍 首先,上一张整体执行流程图(可以点击看大图!!!): ...原创 2018-10-19 15:07:49 · 3098 阅读 · 1 评论 -
K8S 源码探秘 之 默认参数的加载过程(Scheme 初了解)
一、背景介绍 今天在研究 kubeadm 执行流程时,发现 k8s 在加载默认配置时也是基于一定的框架的 于是乎追根溯源,探究了下 Scheme 的工作原理,通过本文做个总结二、分析过程2.1 问题引出 首先,我们看下默认参数加载函数的调用方法 在 cmd/kubeadm/app/cmd/init.go 中的 New...原创 2018-10-16 18:17:04 · 5430 阅读 · 2 评论