kubernetes源码学习之client-go

overview

client-go 是kubernetes中广义的客户端基础库,在Kubernetes各个组件中或多或少都有使用其功能。

Kubernetes API对象

​ 在 Kubernetes 集群中,Kubernetes 对象是我们持久化的实体,就是最终存入 etcd 中的数据,集群中通过这些实体来表示整个集群的状态。

API 版本

​ 为了可扩展性,Kubernetes 在不同的 API 路径(比如/api/v1 或者 /apis/batch)下面支持了多个 API 版本,不同的 API 版本意味着不同级别的稳定性和支持:

  • Alpha level,例如 v1alpha1 默认情况下是被禁用的,可以随时删除对功能的支持,所以要慎用
  • Beta level,例如 v2beta1 默认情况下是启用的,表示代码已经经过了很好的测试,但是对象的语义可能会在随后的版本中以不兼容的方式更改
  • stable level,比如 v1 表示已经是稳定版本了,也会出现在后续的很多版本中。
API 路径

​ 在 Kubernetes 集群中,一个 API 对象在 Etcd 里的完整资源路径,是由:Group Version Resource 三个部分组成的。

  • Grouprbac.authorization.k8s.io
  • Versionv1
  • ResourcePod CRD

client-go 目录结构

client-go的每一个目录都是一个go package

  • kubernetes 这个go package 包含与Kubernetes API所通信的客户端集
  • discovery 这个go package 用于发现kube-apiserver所支持的api
  • dynamic 这个go package包含了一个动态客户端,该客户端能够对kube-apiserver任意的API进行操作。
  • transport 这个 go package提供了用于设置认证和启动链接的功能

client-go 安装

如何选择 client-go 的版本

​ 对于不同的kubernetes版本使用标签 v0.x.y 来表示对应的客户端版本。具体对应参考client-go

​ 例如使用的kubernetes版本为 v1.18.20 则使用对应的标签 v0.x.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hermokrates

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值