1. 程式人生 > >Kubernetes client-go

Kubernetes client-go

spa web uber ash thead top clas 易用 items

Github地址:https://github.com/kubernetes/client-go

訪問kubernetes集群有幾下幾種方式:

方式特點支持者
Kubernetes dashboard 直接通過Web UI進行操作,簡單直接,可定制化程度低 官方支持
kubectl 命令行操作,功能最全,但是比較復雜,適合對其進行進一步的分裝,定制功能,版本適配最好 官方支持
client-go 從kubernetes的代碼中抽離出來的客戶端包,簡單易用,但需要小心區分kubernetes的API版本 官方支持
client-python python客戶端,kubernetes-incubator 官方支持
Java client fabric8中的一部分,kubernetes的java客戶端 redhat

使用client-go獲取Deployment列表:

技術分享圖片
package main

import (
    "path/filepath"
    "k8s.io/client-go/tools/clientcmd"
    "k8s.io/client-go/kubernetes"
    "k8s.io/apimachinery/pkg/apis/meta/v1"
    "fmt"
)

func main() {
    path, err := filepath.Abs("./
") if err != nil { panic(err) } configFilePath := path + "/K8s/API/config" // use the config file config, err := clientcmd.BuildConfigFromFlags("", configFilePath) if err != nil { panic(err.Error()) } // NewForConfig creates a new ClientSet for the given config. clientSet, err :
= kubernetes.NewForConfig(config) if err != nil { panic(err.Error()) } // get all deployment in default namespace deploymentList, err := clientSet.AppsV1().Deployments("default").List(v1.ListOptions{}) if err != nil { panic(err.Error()) } // print list deployment name and replicas for _, v := range deploymentList.Items { fmt.Printf(" * %s (%d replicas)\n", v.Name, *v.Spec.Replicas) } }
View Code

Kubernetes client-go