一,通过client-go管理集群资源
Kubernetes提供了client-go库,该库可以让开发人员使用Golang编写的应用程序与Kubernetes API进行交互。通过client-go,你可以创建、更新和删除Kubernetes资源,并查询集群状态等信息。
以下是一个示例代码片段,演示如何使用client-go列出当前运行的Pod:
package main
import (
"fmt"
"log"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
func main() {
// 使用kubeconfig文件创建一个Kubernetes客户端
config, err := clientcmd.BuildConfigFromFlags("", "/path/to/kubeconfig")
if err != nil {
log.Fatal(err)
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
log.Fatal(err)
}
// 列出所有命名空间中的Pod
pods, err := clientset.CoreV1().Pods("").List(metav1.ListOptions{})
if err != nil {
log.Fatal(err)
}
for _, pod :