golang初始化clientset并根据labels过滤节点列表
版本:
golang: v1.15.0
kubectl-client: v1.17.14,kubectl-server: v1.19.14
一、client-go 介绍
client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象(包括deployment、service、ingress、replicaSet、pod、namespace、node等)的增删改查等操作。大部分对kubernetes进行前置API封装的二次开发都通过client-go这个第三方包来实现。Kubernetes官方从2016年8月份开始,将Kubernetes资源操作相关的核心源码抽取出来,独立出来一个项目Client-go,作为官方提供的Go client。client-go支持RESTClient、ClientSet、DynamicClient、DiscoveryClient四种客户端与Kubernetes Api Server进行交互。
client-go官方文档:https://github.com/kubernetes/client-go
client-go的客户端对象有4个,作用各有不同:
- RESTClient:是对HTTP Request进行了封装,实现了RESTful风格的API。其他客户端都是在RESTClient基础上的实现。可与用于k8s内置资源和CRD资源
- ClientSet:是对k8s内置资源对象的客户端的集合,默认情况下,不能操作CRD资源,但是通过client-gen代码生成的话,也是可以操作CRD资源的。
- DynamicClient:不仅能对K8S内置资源进行处理,还可以对CRD资源进行处理,不需要client-gen生成代码即可实现。
- DiscoveryClient:用于发现kube-apiserver所支持的资源组、资源版本、资源信息(即Group、Version、Resources)。
client-go 四种客户端类型介绍,可参考:https://blog.csdn.net/u013276277/article/details/107920775
二、ClientSet 客户端
ClientSet 客户端默认是对 k8s 内置资源对象客户端的集合,通过 ClientSet 客户端可以操作 k8s 的内置资源对象。
现在我想通过代码初始化 k8s 客户端,来查询过滤 k8s 节点列表。
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2021/12/27/K8s/golang-client-operator/k8s-node.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)