在Google容器引擎上访问Kubernetes API
根据Kubernetes API文档,可以创建/列出/删除POD、复制控制器和服务: 然而在Google容器引擎文档中,他们似乎没有公开这个API。您可以通过RESTAPI管理的唯一资源是集群。POD、复制控制器和服务必须使用gcloud进行管理在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
使用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版本可用?