一、基础知识介绍
1、GVR 和 GVK
G | Goup | 资源组,包含一组资源操作的集合 |
V | Version | 资源版本,用于区分不同API的稳定程度及兼容性 |
R | Resource | 资源信息,用于区分不同的资源API |
K | Kind | 资源对象类型,每个资源对象都需要Kind来区分它自身代表的资源类型 |
(1)通过GVR可以构造REST Api 进行接口调用,而GVK可以获取要读的资源的GVR进而构造REST Api
(2)GVK和GVR的映射叫做REST mapper,用于APIServer发起HTTP请求获取资源。
2、client-go简介
(1)client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象(包括deployment、service、ingress、replicaSet、pod、namespace、node等)的增删改查等操作。
(2)client-go支持RESTClient、ClientSet、DynamicClient、DiscoveryClient四种客户端与Kubernetes Api Server进行交互。
3、client-go的开发流程
(1)通过配置创建config对象
(2)通过config对象创建对应的客户端对象(在这一步可以对环境上的原有资源进行管理)
(3)通过客户端对象创建informer,并添加对应的GVR
(4)添加监听事件处理函数
(5)启动informer
二、clietn-go源码结构
源码目录 | 功能说明 |
---|---|
discovery | 提供DiscoveryClient发现客户端,通过Kubernetes API 进行服务发现 |
dynamic | 提供 DynamicClient 客户端,可以实现对任意 Kubernetes 资源对象操作 |
kubernetes |