概述
Kubernetes对外暴露了很多REST API,有些公司会使用这些API来二次开发或者结合自身的系统进行一些二次开发,毕竟从CI/CD的角度讲,k8s只是提供了CD这一块的功能,CI是缺失的。
但如果你调用过k8s的REST API,你会发现对接上比较费劲,一是每个API都需要在header里面带上Access Token,二是很多API返回的内容多到无法直视,导致你不知道怎么从返回结果中解析出需要的内容。
正文
我这里给大家提供另外一种思路,k8s的源代码其实是基于很多依赖包完成的,其中就有client SDK,代码库地址是:
https://github.com/kubernetes/client-go.git
如果你会写GO的话就可以直接导入以上代码库到你的项目中使用,版本请选择对应的版本。
SDK使用示例
这里举几个例子来介绍其用法。
获取某个应用中的pod列表
func (c *Client) ListPodsPerApp(w http.ResponseWriter, r *http.Request) {
k8sClient, err := kubernetes.NewForConfig(c.Config)
if err != nil {
config.Error.Printf(err.Error())
config.ResponseWriter(w, config.STATUSINTERNALERROR, err.Error(), err.Error())
retu