k8s client-go快速入门教程及源代码阅读之静态客户端
💡
原文中文,约12600字,阅读约需30分钟。
📝
内容提要
client-go的客户端分为静态客户端和动态客户端,静态客户端接口固定,无法访问非k8s内置资源,动态客户端灵活但需要了解GVK/GVR等前置知识,两者底层都使用rest.RESTClient对象,静态客户端构造简单通过GVR定位资源客户端,常用接口包括获取、新增、更新、删除,静态客户端代码通过代码生成,阅读起来简单。
🎯
关键要点
-
client-go的客户端分为静态客户端和动态客户端。
-
静态客户端接口固定,无法访问非k8s内置资源,动态客户端灵活但需要了解GVK/GVR等前置知识。
-
DiscoveryClient用于发现集群资源版本,而不是操作资源的客户端。
-
静态客户端和动态客户端底层都使用rest.RESTClient对象。
-
静态客户端构造简单,通过GVR定位资源客户端,常用接口包括获取、新增、更新、删除。
-
静态客户端的代码通过代码生成,阅读起来简单。
-
通过GVR可以定位到所需资源的客户端。
-
获取操作的Get和List方法的区别在于前者需要指定资源名称。
-
新增、更新和删除操作的代码示例展示了如何使用客户端进行资源管理。
-
kubectl apply命令实际上使用的是Patch接口进行更新操作。
-
静态客户端的代码阅读难度不高,主要是因为代码是通过生成的。
➡️