繁体   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