根据 Kubernetes API 文档,可以创建/列出/删除 Pod、复制控制器和服务:
http://kubernetes.io/third_party/swagger-ui/#!/v1beta1
然而,在 Google Container Engine 文档中,他们似乎没有公开此 API。您可以通过 REST API 管理的唯一资源是集群。 Pod、复制控制器和服务必须使用 gcloud 进行管理。
使用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
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)