用 Go 捋一遍 K8s API:这门课值不值得学
很多运维和后端开发对 Kubernetes 的认知停留在 kubectl 命令或 Helm 图层面,一旦业务要求做个内部管理台,需要按业务线过滤 Pod、批量改镜像版本,纯敲命令就捉襟见肘了。这门课解决的就是这个断层:怎么用 Go 语言直接调 K8s API,把集群里的 Deployment 当成普通数据源来增删改查。它不教你底层调度原理,也不搞大而全的云原生平台,目标非常克制——带你写一个简易的 K8s 管理后台。如果你平时碰过 Go 语法,知道 K8s 里 Deployment 大概是管无状态服务的,就能跟上。完全没写过 Go、没摸过 K8s 集群的读者建议先补基础,直接看会在 client-go 配置环节卡壳。
建议先看哪几块,资料怎么配合练习
资料包的代码线索按循序渐进排过,别跳着看。第一块务必先看热身和 Deployment 列表获取,这里演示了用 curl 直连 API 和用官方 go-client 两种方式。很多人自己折腾 client-go 时死在 kubeconfig 认证和集群连接超时上,跟着这块把本地代码跑通远程集群,后面的增删改查才有意义。第二块看根据 YAML 文件创建 Deployment,这步是核心,它打通了“代码生成资源”这条路。第三块是补充课里用 gin 搭界面,如果你只关心后端接口可以略过,但如果你要做内部工具,这块正好演示了怎么把 K8s 数据吐到 Web 页面。练习时别光看视频,准备一个测试集群,把资料里的示例 YAML 和 Go 代码丢进去跑,自己改改镜像名和副本数,观察接口返回的元数据结构,比干看十遍都管用。
学完能独立做什么
把这几块代码逻辑跑通后,你就能独立写一个对接 K8s 的业务侧控制台。具体场景比如:写个定时巡检脚本,用 Go 程序拉取所有 Deployment 的镜像列表,筛出还在用老版本镜像的服务并报警;或者做个发布后台,业务方填表单,后端调 API 把副本数从 1 扩到 5,再根据 YAML 模板创建新服务。这套简易管理系统的代码量不大,但打通了从 Go 代码到 K8s 控制面的链路。掌握了这套调用逻辑,以后碰到 Pod、Service 等其他资源的 API 操作,你也能照着官方文档自己查、自己写,不用再满世界找现成轮子。
本课程是k8s系列的第5个课程(版本1.18),前面我们学习了如何安装(基于rancher),然后学习了发布服务、nginx-ingress、ci/cd等。为了
课程目录
* 第一章:热身和deployment cplist.push('第一章:热身和deployment');/
* 第1讲:入门课、调用k8s API(curl方式)【如连接不上vip群提问】
* 第2讲:【方法过时,请加VIP群提问】go写代码本地请求远程k8s API (人工反代)
* 第3讲:使用k8s go-client、第一段请求代码
* 第4讲:deployment(1):获取列表
* 第5讲:deployment(2):根据yaml文件创建
* 第6讲:补充课:使用gin搭建展示界面、列出deployment
* 第7讲:deployment(3):获取副本数
* 第8讲:deployment(4):获取镜像列表
* 第9讲:deployment详细页(1):基本信息
* 第10讲:deployment详细页(2):获取Pod列表(名称)
* 第11讲:deployment详细页(3):获取Pod镜像、所属节点、创建时间
* 第12讲:deployment详细(5):增加副本数(上)
* 第13讲:deployment详细(5):增加副本数(下)
* 第二章:list-watch和API进阶封装 cplist.push('第二章:list-watch和API进阶封装');/
* 第14讲:list watch监听deployment变化
* 第15讲:使用list-watch机制获取deployment列表
* 第16讲:API改造(1):deployments列表API
* 第17讲:API改造(2):处理deployments列表更新
* 第18讲:API改造(3):页面自动感知deployments列表更新 (轮询)
* 第19讲:Deployment和ReplicaSet、获取rs列表(初步)
* 第20讲:Deployment和ReplicaSet:获取最新的rs(上)
* 第21讲:Deployment和ReplicaSet:获取最新的rs(下)
* 第22讲:Deployment和ReplicaSet(3):获取指定的Pods
* 第23讲:Api改造(4):动态感知副本数变化(演示课)
* 第24讲:Api改造:动态感知POD状态(初步)
* 第25讲:Event事件入门:获取事件
* 第26讲:API改造:动态感知POD事件输出
* 第27讲:API改造:动态感知POD的就绪状态
* 第28讲:API改造:加载就绪和非就绪的POD列表
* 第29讲:API改造:显示Pod的IP和JSON内容
* 第30讲:API改造:删除deployment下的POD






