根据Kubernetes API文档,可以创建/列出/删除pod,复制控制器和服务:
http://kubernetes.io/third_party/swagger-ui/#!/v1beta1
但是,在Google容器引擎文档中,他们似乎没有公开此API。您可以通过REST API管理的唯一资源是群集。必须使用gcloud管理Pod,复制控制器和服务。
使用Google容器引擎时是否可以访问Kubernetes API?
答案 0 :(得分:3)
我为此主题创建了一个blog post。它包括代码和演示的视频演练。从本质上讲,您可以从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
}
答案 1 :(得分:1)
在Google容器引擎上启动容器群集后,您将拥有一个在GCP项目中的VM上运行kubernetes API的主服务器。如果您运行gcloud preview container clusters list
,您将看到kubernetes API可用的端点以及访问它所需的http基本身份验证凭据。
gcloud捆绑了最新版本的kubectl,并能够为您使用Google容器引擎启动的任何容器群集执行此功能。例如,要列出pod,您可以运行gcloud preview container kubectl list pods
。
https://cloud.google.com/sdk/gcloud/reference/preview/container/kubectl描述了gcloud preview container kubectl
命令以及它接受的标志。