简略demo
package mainimport ( "context" apiv1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" "log")func main(){ kubeconfig := "config/kube.conf" //来自集群中的conf config, err := clientcmd.BuildConfigFromFlags("", kubeconfig) if err != nil { panic(err) } clientset, err := kubernetes.NewForConfig(config) if err != nil { panic(err) } deployments := clientset.AppsV1().Deployments(apiv1.NamespaceDefault) list, err := deployments.List(context.TODO(), metav1.ListOptions{}) if err != nil { panic(err) } for _, d := range list.Items { log.Printf("* %s (%d replicas ) %s \n ",d.Name,*d.Spec.Replicas,d.Namespace) } namespaceList, err := clientset.CoreV1().Namespaces().List(context.TODO(), metav1.ListOptions{}) if err != nil { log.Fatal("namespace error",err) panic(err) } for _,namespace := range namespaceList.Items { log.Println(namespace.Name,namespace.CreationTimestamp) }}
官网参考 https://github.com/kubernetes...
遇到的问题
1.拉取镜像失败
能够delete deployment而后从新apply,也能够在对应机器上手动拉下,如果应用公有镜像仓库,可能就没有这个问题
2.批改master node名称
临时没有想到解决办法,我是重新部署整个集群之前把机器的名字改掉了
3.~/.kube/下没有config信息
master下面没有,别的node上有,能够查看一下