前两天,我们是开发获取node相关的信息的模块,今天我们就来看看如何使用go开发获取k8s集群中pod相关的信息。
示例代码可以借助AI生成或者自己查资料编写,这里先给出go调用k8s集群的pod接口的代码:
运行结果如下,可以看到这里有pod的名字、命名空间以及运行状态:
我们知道K8s集群大部分操作都可以通过kubectl 命令行接口或类似 kubeadm 这类命令行工具来执行, 这些工具在背后也是调用 API。但是一般都是面向管理员或者开发使用的,如果想开发可视化界面,让不懂k8s相关知识的人也能用,就得自己开发应用,使用 REST 调用来访问这些 API,可以降低除专门开发和运维相关人员的使用难度。
我们先来捋一捋,如果你不是用go开发而是使用其他语言,那怎么调用k8s集群的接口获得你想要的信息呢,这里就要用到客户端库了。
先摆出官网客户端库地址:
我们开发集群相关功能,使用 Kubernetes REST API 编写应用程序时,并不需要自己实现 API 调用和 “请求/响应” 类型。可以根据自己的编程语言需要选择使用合适的客户端库。
客户端库通常可以处理诸如身份验证之类的常见任务。如果 API 客户端在 Kubernetes 集群中运行,大多数客户端库可以发现并使用 Kubernetes 服务账号进行身份验证,或者能够理解 kubeconfig 文件 格式来读取凭据和 API 服务器地址。
以下是官方维护的客户端,基本主流语言都是支持的
但也有一部分是社区维护的客户端库,感兴趣的朋友可以自行查找看一下。
再说说Kubernetes API
官网是这么说的:“REST API 是Kubernetes 的基本结构。所有操作和组件之间的通信及外部用户命令都是调用 API 服务器处理的 REST API。因此,Kubernetes 平台视一切皆为 API 对象, 且它们在 API 中有相应的定义。”
所以摆出官网API参考,列出了Kubernetes v1.27 版本的 API:
比如调用pod的API,给出官网地址:
详细的内容也比较多,我也正在研究,大家感兴趣的可以自行查阅。
所以围绕k8s开发,首先就需要对k8s的api要很熟悉,不然就算有数据,也不知道如何灵活调用以供自己业务使用。好了,今天的分享就到这了,感兴趣的朋友快去尝试,别忘了点赞关注呀!
领取专属 10元无门槛券
私享最新 技术干货