標籤:ber cas 需要 list panic web use 分享 path
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 mainimport ( "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