簡體   English   中英

在Google Container Engine上訪問Kubernetes API

[英]Accessing Kubernetes API on Google Container Engine

根據Kubernetes API文檔,可以創建/列出/刪除Pod,復制控制器和服務:

http://kubernetes.io/third_party/swagger-ui/#!/v1beta1

但是,在Google Container Engine文檔中,它們似乎沒有公開此API。 可以通過REST API管理的唯一資源是群集。 必須使用gcloud管理Pod,復制控制器和服務。

使用Google Container Engine時是否可以訪問Kubernetes API?

我為此主題創建了一個博客文章 它包括代碼和演示的視頻演練。 本質上,您可以從Google Container Engine API獲取Kubernetes憑據。 這是在golang中的操作方法:

func newKubernetesClient(clstr *container.Cluster) (*kubernetes.Clientset, error) {
    cert, err := base64.StdEncoding.DecodeString(clstr.MasterAuth.ClientCertificate)
    if err != nil {
        return nil, err
    }
    key, err := base64.StdEncoding.DecodeString(clstr.MasterAuth.ClientKey)
    if err != nil {
        return nil, err
    }
    ca, err := base64.StdEncoding.DecodeString(clstr.MasterAuth.ClusterCaCertificate)
    if err != nil {
        return nil, err
    }
    config := &rest.Config{
        Host:            clstr.Endpoint,
        TLSClientConfig: rest.TLSClientConfig{CertData: cert, KeyData: key, CAData: ca},
        Username:        clstr.MasterAuth.Username,
        Password:        clstr.MasterAuth.Password,
        // Insecure:        true,
    }
    kbrnts, err := kubernetes.NewForConfig(config)
    if err != nil {
        return nil, err
    }
    return kbrnts, nil
}

在Google Container Engine上啟動容器集群后,您將擁有一個在GCP項目中的VM上運行kubernetes API的主服務器。 如果運行gcloud preview container clusters list您將看到kubernetes API可用的端點以及訪問它的http基本身份驗證憑據。

gcloud與最新版本的kubectl捆綁在一起,並且可以對您使用Google Container Engine啟動的任何容器集群執行該命令。 例如,要列出Pod,可以運行gcloud preview container kubectl list pods

https://cloud.google.com/sdk/gcloud/reference/preview/container/kubectl描述了gcloud preview container kubectl命令及其接受的標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM