简略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上有,能够查看一下