小编Ara*_*nya的帖子

无法从监视流中解码事件:流错误:流 ID 3;内部错误

我想监听集群内部署的add事件,我用的是client-go Watch Api,刚开始运行的很好,但是过不了多久就会报错。

我尝试了两种 API 方式来收听

一种方式:

func startWatchDeployment(clientSet *kubernetes.Clientset){
    defer func() {
        err := recover()
        if err != nil {
            fmt.Println(err)
        }
    }()

    Log.Info("????deployment...")
    count := 0
    deploymentsClient := clientSet.AppsV1beta1().Deployments(metav1.NamespaceAll)
    list,_ := deploymentsClient.List(metav1.ListOptions{})
    items := list.Items
    w, _ := deploymentsClient.Watch(metav1.ListOptions{})
    for {
        select {
            case e, _ := <-w.ResultChan():
                Log.Infof("162: %s",e)
                if e.Type == watch.Added || e.Type == watch.Deleted{
                    if count != len(items){
                        count += 1
                    }else{
                        // go?reflect??????struct
                        nname := e.Object.(*v1beta1.Deployment).Namespace
                        if r, _ := regexp.Compile("^(p|u|user)-");nname != "default" …
Run Code Online (Sandbox Code Playgroud)

go kubernetes client-go

5
推荐指数
0
解决办法
2329
查看次数

标签 统计

client-go ×1

go ×1

kubernetes ×1