ywq935
码龄5年
  • 339,911
    被访问
  • 94
    原创
  • 192,302
    排名
  • 264
    粉丝
  • 4
    铁粉
关注
提问 私信
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2017-06-28
博客简介:

ywq935的博客

博客描述:
专注于 容器/K8s/DevOps等领域
查看详细资料
  • 3
    领奖
    总分 416 当月 8
个人成就
  • 获得89次点赞
  • 内容获得126次评论
  • 获得435次收藏
  • GitHub 获得124Stars
创作历程
  • 4篇
    2021年
  • 19篇
    2020年
  • 23篇
    2019年
  • 33篇
    2018年
  • 16篇
    2017年
成就勋章
TA的专栏
  • Kubernetes源码阅读
    21篇
  • Kubebuilder
    8篇
  • kubernetes那些事儿
    22篇
  • APIServer
    3篇
  • python
    20篇
  • 前端
    6篇
  • Django
    8篇
  • 问题
    8篇
  • kubernetes
    53篇
  • 微服务
    4篇
  • Prometheus
    3篇
  • 存储
    6篇
  • ceph
    5篇
  • Docker
    1篇
  • Go
    31篇
  • 工具
    2篇
  • 网络
    4篇
  • Linux
    8篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Kubernetes源码-公共库-01-wait-定时(条件)轮询库

Kubernetes源码-公共库-01-wait-定时(条件)轮询库前言在前面的主要组件分析过程中,有数次提及到的wait库让我记忆犹新,这是一个被高频引用的库,各个主要组件如scheduler、controller、kubelet等都常常使用wait库中的function轮询间隔(或条件)触发执行动作。整个wait库只有一个代码文件,代码行数不过400余行,本篇就来完整地分析一下这个库。代码路径: vendor/k8s.io/apimachinery/pkg/util/wait/wait.go分类
原创
发布博客 2021.11.21 ·
393 阅读 ·
0 点赞 ·
0 评论

Kubernetes源码学习-Kubelet-P1-启动流程

前言在大致分析过k8s的Scheduler、Controller、APIServer三个控制平面组件后,本篇开始进入数据交互平面的daemon组件kubelet部分,看看kubelet是如何在控制平面和数据平面中以承上启下的模式工作的。启动流程启动入口照旧,位于项目的cmd路径下,使用cobra做cmd封装:cmd/kubelet/kubelet.go:39func main() { rand.Seed(time.Now().UnixNano()) command := app.NewKub
原创
发布博客 2021.05.05 ·
210 阅读 ·
1 点赞 ·
0 评论

Kubernetes源码学习-APIServer-P4-APIServer的鉴权机制

前言在上一篇APIServer-P3-APIServer的认证机制中,讲述了请求进入后的认证过程,在通过认证之后,请求将进入鉴权环节,本篇就此展开。审查请求属性Kubernetes 仅审查以下 API 请求属性:用户 - 身份验证期间提供的 user 字符串。组 - 经过身份验证的用户所属的组名列表。额外信息 - 由身份验证层提供的任意字符串键到字符串值的映射。API - 指示请求是否针对 API 资源。请求路径 - 各种非资源端点的路径,如 /api 或 /healthz。API 请求
原创
发布博客 2021.02.04 ·
308 阅读 ·
0 点赞 ·
0 评论

Kubernetes源码学习-APIServer-P3-APIServer的认证机制

前言在上一篇APIServer-P2-启动流程中,把APIServer预启动、加载配置、启动 的流程大致过了一遍,其中也有提到,APIServer的认证机制分为多种,以组合的形式遍历认证,任一机制认证成功,则判定请求认证成功,顺利进入下一个授权判定的环节。那么在本篇,就来详细看看这些认证机制。Kubernetes用户所有 Kubernetes 集群都有两类用户:由 Kubernetes 管理的服务账号和普通用户。其中服务账号(ServiceAccount)是提供给集群中的程序使用,以Secret资源
原创
发布博客 2021.02.03 ·
362 阅读 ·
0 点赞 ·
1 评论

python多进程线程练习:主机批量管理

需求: 1.主机信息配置文件用configparser解析 2.可批量执行命令,上传文件,结果实时返回 3.主机用户名密码、端口可以不同 4.执行远程命令使用paramiko模块 5.多台主机链接创建多个进程并发,单台主机上的多条执行命令使用多线程并发一、安装模块 paramiko模块是遵循python模块标准的openssh协议模块,可以使用pip快速安装。 首先需安装pip工具,
原创
发布博客 2017.11.14 ·
827 阅读 ·
3 点赞 ·
0 评论

Kubernetes源码学习-APIServer-P2-启动流程

Kubernetes源码学习-APIServer-P2-启动流程前言在前一篇开胃菜-基础结构信息对APIServer各类基础信息、结构铺垫的基础上,开始进入APIServer源码的探讨环节。本篇拆分为 预启动、启动种两部分来分析。预启动资源注册前面的基础篇有讲过,scheme是一种内存型的注册表,提供给各类gvk进行注册。在APIServer http服务启动前的第一步,就是将所支持的gvk注册到scheme中,后面的步骤会依赖scheme注册表信息。值得注意的是,并没有函数方法来显示地注册sc
原创
发布博客 2020.12.01 ·
185 阅读 ·
0 点赞 ·
0 评论

Kubernetes源码学习-APIServer-P1-基础结构信息

Kubernetes源码学习-APIServer-P1-基础结构信息前言APIServer的工作主要围绕着对各类资源对象的管控,因此,在开始阅读APIServer的源码之前,有必要笼统地列举一下它在运行中所用到的核心数据结构等基础性信息,当作是开胃菜篇吧。Group/Version/Kind/Resource在K8s的设计中,resource是其最基础、最重要的概念,也是最小的管理单位,所有的管理对象都承载在一个个的resource实例上,为了实现这些resource的复杂管理逻辑,又进一步地将他们
原创
发布博客 2020.12.01 ·
183 阅读 ·
0 点赞 ·
0 评论

Kubernetes源码学习-APIServer-总览篇

Kubernetes源码学习-APIServer-总览篇开胃菜-基础结构信息APIServer的启动流程APIServer的认证机制APIServer的授权机制概述APIServer提供了 k8s各类资源对象的CURD/watch、认证授权、准入控制等众多核心功能,在k8s中定位类似于大脑和心脏,它的功能包括:提供了集群管理的REST API接口(包括资源CURD、认证授权、数据校验以及集群状态变更);是所有模块的数据交互和通信的枢纽,各模块的运作都依赖于APIS
原创
发布博客 2020.12.01 ·
143 阅读 ·
0 点赞 ·
0 评论

《 Kubebuilder v2 使用指南 》-P8-踩到的坑

前言一路下来踩了不少坑,有一些没有印象了,还有印象的就记录下来,想起来再补充.metadata.resourceVersion: Invalid value: 0x0: must be specified for an update对unit执行scale的时候报错:#~ kubectl scale unit unit-sample --replicas=2The unit "unit-sample" is invalid: metadata.resourceVersion: Invalid va
原创
发布博客 2020.05.24 ·
1619 阅读 ·
0 点赞 ·
0 评论

《 Kubebuilder v2 使用指南 》-P7-本地调试和发布Controller

本地调试和发布Controller前言前面几篇已经完成了初步的代码编写,但随后还需要 调试测试 --> 正式发布 到K8s集群内。这个步骤是官方文档内简笔带过的,极易带来困扰,写代码很难一气呵成,总会有error需要调试,但不可能每次为了调试一两行代码或加个打印输出,重复进行打镜像、推镜像、重启pod这一系列繁杂的操作,本篇专门讲述如何使用本地开发环境连接K8s集群进行调试,以及测试完毕后正式发布到K8s集群中运行。调试/测试众所周知,APIServer交互是需要TLS加密的,CRD cont
原创
发布博客 2020.05.24 ·
1666 阅读 ·
1 点赞 ·
6 评论

《 Kubebuilder v2 使用指南 》-P6-CRD Admission Webhook

CRD Admission Webhook前言前面的文章中,实现了Unit资源对象实例持久化之后的controller管理的过程。除此之外,Kubernetes额外支持了一些很有趣且实用的功能,例如经常被用在资源准入控制上的Adminssion Webhook,它是对APIServer接收准入请求的扩展。详情请参考官方文档:extensible-admission-controllers认识Adminssion Webhook什么是Adminssion Webhook?在官方文档里对的话来说就是
原创
发布博客 2020.05.24 ·
997 阅读 ·
0 点赞 ·
0 评论

《 Kubebuilder v2 使用指南 》-P5-实现CRD控制逻辑

实现CRD控制逻辑前言上一篇已经设定了Unit所要实现的目标,完成了Unit结构体各子字段、ownResource字段的填充,为控制逻辑的实现做了基础铺垫。本篇主要解决和实现的控制逻辑:如何管理Unit下属的own Resources如何使Unit和own Resources生命周期绑定删除Unit资源前能否做一些自定义操作逐一来实现。管理own Resources如前文所说,一共设计了5种ownResource分别对应StatefulSet/Deployment/Ingress/Se
原创
发布博客 2020.05.24 ·
973 阅读 ·
1 点赞 ·
0 评论

《 Kubebuilder v2 使用指南 》-P4-从零开始设计一个CRD

从零开始设计一个CRD前言经过前面的铺垫,相信现在对kubebuilder的工作模式已初具了解,那么从本篇开始,正式设计一个CRD。本文对于Unit的设计,是基于我的个人场景下的需求提炼出来的,不一定适合你,但着重点在于思路,希望能有帮助。面临的现状在我的场景下,应该也是大多数人的场景下,通常一个运行服务(姑且这么称呼),使用一系列build-in 类型资源进行组合,来保障运行和提供服务,例如,最常用的组合有:StatefulSet/Deployment/Ingress/Service/Ingres
原创
发布博客 2020.05.24 ·
801 阅读 ·
0 点赞 ·
2 评论

《 Kubebuilder v2 使用指南 》-P3-认识Kubebuilder

认识Kubebuilder前言没有人会喜欢黑盒,在使用一个工具之前,我习惯于尽可能多地去了解它,不然用起来会觉得不踏实。Controller的工作流程已经很熟悉了,理解kubebuilder的源码应该也比较容易。因此,大概阅读了一下了kubebuilder的源码,本篇圈出其中几个重点,用以帮助理解和认识kubebuilder。概念名词下面几个概念名词非常的重要,文中会多次提及。Own ResourceCRD一般设计用作管理k8s内置的各类资源组合,用以实现自定义的部署和运行逻辑,是一种上层封装,
原创
发布博客 2020.05.24 ·
3592 阅读 ·
2 点赞 ·
0 评论

《 Kubebuilder v2 使用指南 》-P2-环境准备

环境准备Requirementsgo version v1.13+.docker version 17.03+.kubectl version v1.11.3+.kustomize v3.1.0+除了上面的工具和环境以外,需要有一套可连接的kubernetes环境,要求配置好kubectl config,以便能直连进行调试。由于Feature gates的 --CustomResourceWebhookConversion参数是在v1.15及以上的版本k8s才默认为true,为了避免版本导
原创
发布博客 2020.05.24 ·
425 阅读 ·
0 点赞 ·
0 评论

《 Kubebuilder v2 使用指南 》-P1-总览篇

《 Kubebuilder v2 使用指南 》前言K8s内置的build-in 资源类型,可以组合使用以满足绝大部分场景的部署需求,更进一步地,对于追求更高自由度、有特殊需求的场景下,在kubernetes v1.7 后的版本开始支持CRD(CustomResourceDefinition),无需修改组件代码,即可通过CRD向APIServer注入自定义资源的方式,对内置资源进行上层封装,实现自定义环境部署和运行逻辑。APIServer会根据CRD的指定,自动生成CRD的restful路径,有关此路径的
原创
发布博客 2020.05.24 ·
2328 阅读 ·
4 点赞 ·
2 评论

MenuMeters_2.0.3.zip

发布资源 2020.05.12 ·
zip

kubeadm修改默认证书有效期,解决证书过期问题

kubeadm 修改默认证书有效期前言出于安全考虑,k8s 团队推荐定期更新版本,因此kubeadm生成的证书,有效期默认在代码中写死为1年,一旦证书过期,k8s集群将会崩溃,因此,续期 or 升级,成了一个一年一度必选题。但在生产环境中,每一次版本更新可能存在未知的风险,给已经稳定运行的集群带来诸多不确定性,而每年续期一次证书,对管理不太友好,频繁手动操作也可能会带来额外的风险。去年部署的1.14的集群,证书快要到期了,现在决定修改kubeadm的源码重新编译,将续期证书的有效期进行延长。本篇记载分析
原创
发布博客 2020.05.12 ·
3752 阅读 ·
1 点赞 ·
0 评论

Kubernetes源码学习-Controller-P5-StatefulSet Controller

P5-StatefulSet Controller前言在前面的几篇文章中,先对deployment controller进行了初步分析:Controller-P3-Deployment Controller严格来讲deployment的管理pod的逻辑是基于replicaSet来实现的,因此接下来结合replicaSet controller进行了深入:Controller-P3-Rep...
原创
发布博客 2020.04.08 ·
572 阅读 ·
1 点赞 ·
0 评论

Kubernetes源码学习-Controller-P4-ReplicaSet-Controller

P4-ReplicaSet Controller前言在上一篇文章中,对deployment controller的工作模式进行了详细地分析:[Controller-P3-Controller](https://github.com/yinwenqin/kubeSourceCodeNote/blob/master/controller/Kubernetes源码学习-Controller-P3-...
原创
发布博客 2020.03.24 ·
273 阅读 ·
0 点赞 ·
0 评论
加载更多