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接口进行更新操作。

  • 静态客户端的代码阅读难度不高,主要是因为代码是通过生成的。

➡️

继续阅读