Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Google容器引擎上访问Kubernetes API_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

在Google容器引擎上访问Kubernetes API

在Google容器引擎上访问Kubernetes API,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,根据Kubernetes API文档,可以创建/列出/删除POD、复制控制器和服务: 然而在Google容器引擎文档中,他们似乎没有公开这个API。您可以通过RESTAPI管理的唯一资源是集群。POD、复制控制器和服务必须使用gcloud进行管理 使用Google Container Engine时是否可以访问Kubernetes API?一旦在Google Container Engine上启动容器集群,您将有一个主机在GCP项目的VM上运行Kubernetes API。如果运行gcloud

根据Kubernetes API文档,可以创建/列出/删除POD、复制控制器和服务:

然而在Google容器引擎文档中,他们似乎没有公开这个API。您可以通过RESTAPI管理的唯一资源是集群。POD、复制控制器和服务必须使用gcloud进行管理


使用Google Container Engine时是否可以访问Kubernetes API?

一旦在Google Container Engine上启动容器集群,您将有一个主机在GCP项目的VM上运行Kubernetes API。如果运行
gcloud preview container clusters list
,您将看到kubernetes API可用的端点以及访问它所需的http基本身份验证凭据

gcloud附带了kubectl的最新版本,并且能够为您使用Google容器引擎启动的任何容器集群执行它。例如,要列出播客,可以运行
gcloud preview container kubectl list pods

描述
gcloud preview container kubectl
命令及其接受的标志

我为这个主题创建了一个。它包括代码和演示的视频演练。基本上,您可以从Google容器引擎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
}

听起来不错!是否有关于如何验证API并与之交互的文档?谢谢这是一个很好的开始。kubectl-*.md文档有更多详细信息。可能是更好的链接。嗨,@Cameron!是否有此代码的python版本可用?