k8s系列 – CRD自定义资源与Controller实现(完结篇)

经过一段时间的学习,能想到的client-go相关用法知识基本总结完毕,代码全部列在了下面的项目中:k8s-client-go

一共包括10个demo,从易到难,以实用为目的:

  • demo1: 连接k8s
  • demo2: 解析yaml为json, 反序列化到deployment对象, 修改deployment.spec.replicas, 提交到k8s生效
  • demo3: 更新deployment.Spec.Template.Spec.Containers, 升级镜像版本, 提交到k8s生效
  • demo4: 更新deployment, 循环获取部署状态, 判定部署完成, 并获取最新pod列表与失败原因
  • demo5: xterm.js的基本用法, 为后续web ssh访问k8s container做铺垫
  • demo6: xterm.js+client-go remotecommand实现完美web ssh登录container
  • demo7: 获取POD内container的输出
  • demo8: client-go的sdk日志配置
  • demo9: 自定义CRD, 利用code generation生成controller骨架代码
  • demo10: 实现一个类似于replicas的controller, 动态管理POD数量

最新的demo10实现了CRD与controller调度器,这是我觉得最晦涩也最有价值的一部分,完整的调研文档点击这里下载:《CRD自定义资源&实现controller调度器》

网上关于client-go的资料很少,如果资料帮助到了你,那么可以扫码向我支付打赏表示谢意,以便支持我的博客服务器继续运营下去,谢谢。

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~