先判断:这门课解决什么场景与门槛

这门课解决的核心场景是:如何把一个具体的通用数据库服务,通过纯手工编码的方式封装成 Kubernetes 原生的自定义资源与控制器。在日常运维中,如果团队需要把内部中间件或自研业务服务纳入集群统一管理,实现声明式部署与自动化扩缩容,Operator 是标准解法。课程基于 k8s 1.20 以上版本,全程不依赖现成框架黑盒,而是带你从零搭建控制器交互逻辑。资料适合已经掌握 Go 语言基础、能独立部署基础集群、并写过简单自定义资源定义的读者。如果你还没摸过 informer 机制或 client 库的基本调用,建议先补齐这些前置知识,否则在手工实现控制器调谐时会明显吃力。

资料怎么配合练习与学习顺序建议

拿到资料后,不要按顺序被动看。建议先看开篇架构梳理,在脑海中建立 CRD 设计、代码生成、控制器调谐的整体闭环。接着进入实操:先跑通 CRD 初步设计与代码生成器,把自动生成的客户端集成到本地工程,确保能连接测试集群。然后重点啃手工创建控制器部分,跟着视频把监听、入队、调谐逻辑敲一遍。学到这里先暂停,自己在集群里提交一个自定义资源,验证能否触发控制器创建对应工作负载。最后再回头看字段验证、默认值、状态回写与扩容伸缩等进阶属性配置,查漏补缺。练习时务必准备一个干净的测试环境,边敲代码边提交资源,遇到行为不符再回查对应章节,这种以问题驱动的学习方式比线性刷课效率高得多。

学完能独立做什么

走完全套流程后,你应该能独立完成一个 Operator 的闭环开发。具体产出包括:根据业务需求合理设计 CRD 结构,配置字段打印、默认值与状态字段;使用代码生成工具产出符合规范的客户端与 informer;手工编写控制器核心逻辑,监听自定义资源变化,并据此创建、更新对应的工作负载;实现扩容与伸缩属性,把运行状态准确回写到自定义资源。这套纯手工实现的经验,让你在面对复杂中间件管理需求时,不再依赖现成框架,而是能根据实际场景灵活拆解并组装控制器,真正具备在团队内部落地云原生运维方案的能力。


本课程是继第一波课程的进阶课程,独立课程。本课程使用纯手工打造Operator各项功能,k8s版本是1.20+。本课程内容:我们把微服务课程中的通用DB服务做成

课程目录

*   第一章:Operator进阶开发和配置 cplist.push('第一章:Operator进阶开发和配置');/

  *   第1讲:开张课、课程基本内容和架构

  *   第2讲:CRD的初步设计和代码生成器的初步使用

  *   第3讲:CRD的初步编写、自动生成的Client使用

  *   第4讲:复习课:手工创建控制器

  *   第5讲:复习课:crd的基本验证、默认值、支持status字段

  *   第6讲:复习课:crd的字段打印、扩容和伸缩属性设置

  *   第7讲:嘴炮课:控制器和目标软件的基本交互方式和功能

  *   第8讲:控制器(1):创建deployment的代码封装

  *   第9讲:控制器(2):提交yaml创建deployment初步

  *   第10讲:控制器(3):提交yaml修改deployment(patch模式)

  *   第11讲:控制器(4):关于级联删除的基本写法

  *   第12讲:控制器(5):复习课:重新拉起被手工删掉的资源

  *   第13讲:控制器(6):监控deployment副本数变化、显示在控制台

*   第二章:GRPC ORM的交互实现 cplist.push('第二章:GRPC ORM的交互实现');/

  *   第14讲:参数交互设计和ConfigMap创建

  *   第15讲:控制器映射配置文件到目标软件中

  *   第16讲:演示课: 支持连接池参数的提交

  *   第17讲:修改参数后ConfigMap挂载配置文件的更新思路