3 ywq935

尚未进行身份认证

我要认证

每天进步一点点

等级
TA的排名 3w+

《 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 10:47:27

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

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

2020-05-24 10:46:50

《 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 10:46:06

《 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 10:44:13

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

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

2020-05-24 10:43:19

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

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

2020-05-24 10:42:27

《 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 10:41:56

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

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

2020-05-24 10:40:58

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

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

2020-05-12 09:01:29

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 20:59:38

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 19:42:27

Kubernetes源码学习-Controller-P3-Controller分类与Deployment Controller

P3-Controller分类与Deployment Controller前言Controller部分的第一篇文章中,我们从cobra启动命令入口开始,进入到了多实例leader选举部分的代码,对leader选举流程做了详细地分析:Controller-P1-多实例leader选举接着在第二篇中,文字和图解简单描述了controller是如何结合client-go模块中的informer工...

2020-01-31 16:05:26

Kubernetes源码学习-Controller-P2-Controller与client-go

病毒肆虐,阴雨连绵,门房紧闭,亲友不问,冷冷清清,甚是无趣。坐下写写代码,总结下过去一年所学,整理两篇文章,倒也算是乐得自在。盼疫情早日控制,春回大地,愿同胞们身体安康,祝新年快乐!P2-Controller与client-go前言Controller作为k8s的资源控制组件,必定要实时地监控对比资源的目标状态和当前状态,这其中会与apiserver产生大量的交互。在k8s中,k8s各个组件...

2020-01-26 14:15:18

kubernetes挂载cephfs带来的mds卡顿问题及引入cephfs storageClass

kubernetes挂载cephfs带来的mds卡顿问题及引入cephfs storageClass前言前面的文章中,有写过如何在kubernets中组合pv/pvc,使用cephfs进行数据的持久化存储:cephfs 在kubernetes中的使用但是在经过一段时间的使用后,发现此方式意外地会造成ceph mds严重的性能问题,本文将介绍如何使用cephfs storageClass避免...

2020-01-06 08:45:08

kubernetes 部署redis cluster

kubernetes 部署redis cluster前言Redis cluster的集群关系的维系,并非是依赖于ip的,而是依赖于cluster内部的唯一id, ip只在首次建立集群关系时连接彼此使用,不作为成员连接凭据,取而代之的是id。画外音:只要持有id,容器重启ip怎么变化都不会影响到维系redis cluster的成员关系。那么id怎么保存的呢?redis cluster在建立起来...

2020-01-03 18:10:32

Etcd 和 kubernetes master的灾备与恢复

Etcd和kubernetes master的灾备与恢复背景说明问题:假设某台带有etcd的k8s master节点完全故障,彻底无法恢复方案:新启动一台主机,配置为故障master主机相同的ip和主机名,并尝试原地恢复,顶替原故障master节点Etcd恢复参考官方文档:https://github.com/etcd-io/etcd/blob/master/Documentation...

2020-01-01 17:42:15

Kubernetes源码学习-Controller-P1-多实例leader选举

P1-多实例leader选举.md前言Kubernetes多master场景下,核心组件都是以一主多从的模式来运行的,在前面scheduler部分的文章中,并没有分析其主从选举及工作的流程,那么在本篇中,以controller为例,单独作一篇分析组件之间主从工作模式。入口如scheduler一样,controller的cmd启动也是借助的cobra,对cobra不了解可以回到前面的文章中查...

2019-12-10 19:23:43

Kubernetes源码学习-Controller-总览篇

Controller源码分段阅读导航多实例leader选举Informer工作流程Deployment ControllerStafulSet Controller待补充概述kube-controller的作用引述首先依照惯例,贴两篇官方对   于controller的设计逻辑和运行机制的说明文档:https://github.com/kubernetes/communi...

2019-12-10 19:22:32

Kubernetes各组件参数配置优化建议

Kubernetes各组件参数配置优化建议kubernetes虽然默认配置下已经足够可用满足常见的中小规模场景,但是若是将各组件参数、内核参数进行适当的调整,以达到更贴合使用场景的参数值,对集群运行的稳定性、故障切换能力等方面会有不小的提升。下面介绍一下各组件生产运行常做的一些参数调整。Kubelet参数配置kubelet在各个组件之中,作为唯一的分布在每个节点上的daemon控制程序,应该...

2019-11-18 16:15:05

Golang并发模型

Golang并发模型前言Go实现了两种并发形式。第一种是大家普遍认知的:多线程共享内存,这是最常见的各语言中的多线程并发模型,go本身也支持。另外一种是Go语言特有的,也是Go语言推荐的CSP(communicating sequential processes)并发模型。Go语言提倡以通信的方式来共享内存,这句话相信看过一些go相关文档的同学一定不陌生:Do not communicate...

2019-09-25 18:04:21

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取