返回顶部
首页 > 资讯 > 精选 >Kubernetes Watch 返回空结果(空类型,空对象)
  • 677
分享到

Kubernetes Watch 返回空结果(空类型,空对象)

2024-02-09 11:02:34 677人浏览 安东尼
摘要

PHP小编苹果将为大家介绍一个常见的问题:kubernetes Watch 返回空结果(空类型,空对象)。在使用Kubernetes进行监控时,有时会遇到返回空结果的情况,即使在集群中

PHP小编苹果将为大家介绍一个常见的问题:kubernetes Watch 返回空结果(空类型,空对象)。在使用Kubernetes进行监控时,有时会遇到返回空结果的情况,即使在集群中存在正在运行的Pod或其他资源。这种情况可能会导致监控系统无法获取到正确的数据,进而影响系统的稳定性和可靠性。本文将详细解析这个问题的原因,并提供相应的解决方案,帮助读者快速解决这个问题。

问题内容

我正在使用 Kubernetes client-Go 监视一些资源。

func watchGVR(ctx context.Context, args *Arguments, dynClient *dynamic.DynamicClient, gvr schema.GroupVersionResource) error {
    //if gvr.Group==" events.k8s.io" && gvr.Resource==
    fmt.Printf("Watching %q %q\n", gvr.Group, gvr.Resource)
    watch, err := dynClient.Resource(gvr).Watch(context.TODO(), metav1.ListOptions{})
    if err != nil {
        fmt.Printf("..Error watching %v. group %q version %q resource %q\n", err,
            gvr.Group, gvr.Version, gvr.Resource)
        return err
    }
    defer watch.Stop()
    for {
        select {
        case event := <-watch.ResultChan():
            handleEvent(gvr, event)
        case <-ctx.Done():
            return nil
        }
    }
}

func handleEvent(gvr schema.GroupVersionResource, event watch.Event) {
    if event.Object == nil {
        fmt.Printf("event.Object is nil? Skipping this event. Type=%s %+v gvr: (group=%s version=%s resource=%s)\n", event.Type, event,
            gvr.Group, gvr.Version, gvr.Resource)
        return
    }
    gvk := event.Object.GetObjectKind().GroupVersionKind()
    obj, ok := event.Object.(*unstructured.Unstructured)
    if !ok {
        fmt.Printf("Internal Error, could not cast to Unstructered %T %+v\n", event.Object, event.Object)
        return
    }
....

这工作正常,除了对于某些资源我得到连续的空结果: event.Object 为零,event.Type 是空字符串

这种情况会发生在这样的资源上:


event.Object is nil? Skipping this event. Type= {Type: Object:} gvr: (group=operator.cluster.x-k8s.io version=v1alpha2 resource=addonproviders)

event.Object is nil? Skipping this event. Type= {Type: Object:} gvr: (group=operator.cluster.x-k8s.io version=v1alpha2 resource=coreproviders)

这可能是什么原因?

解决方法

我发现了这个问题。

我需要在从通道读取时检查结果:

case event := <-watch.ResultChan():
            handleEvent(gvr, event)

case event, ok := <-watch.ResultChan():
            if !ok {
                fmt.Printf("ResultChan is closed %+v\n", gvr)
                return nil
            }
            handleEvent(gvr, event)

如果该资源没有对象,通道将关闭。

以上就是Kubernetes Watch 返回空结果(空类型,空对象)的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: Kubernetes Watch 返回空结果(空类型,空对象)

本文链接: https://lsjlt.com/news/562499.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Kubernetes Watch 返回空结果(空类型,空对象)
    php小编苹果将为大家介绍一个常见的问题:Kubernetes Watch 返回空结果(空类型,空对象)。在使用Kubernetes进行监控时,有时会遇到返回空结果的情况,即使在集群中...
    99+
    2024-02-09
  • SpringBoot返回Json对象报错(返回对象为空{})
    目录1 需求描述2 代码展示3 原因分析4 解决方案5 效果展示6 结束语1 需求描述 我们现在要干一个什么事情呢,我们要在浏览器输入一个请求地址,然后我们的后端就给我返回一个Use...
    99+
    2024-04-02
  • 为什么解码返回结果为空
    偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《为什么解码返回结果为空》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当...
    99+
    2024-04-04
  • 如何解决axios返回空对象的问题
    这篇文章主要介绍如何解决axios返回空对象的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!问题描述:使用 axios 请求数据的时候,已经请求成功,返回的参数也正确。但打印出来...
    99+
    2024-04-02
  • python判断数据库返回结果是否为空
    python判断mongo查询结果是否为空,可以使用cursor.count()来判断,为0则查询返回结果为空。conn = pymongo.MongoClient(host="192.168.3.6",p...
    99+
    2024-04-02
  • BeanUtils.copyProperties复制对象结果为空怎么解决
    这篇文章主要介绍“BeanUtils.copyProperties复制对象结果为空怎么解决”,在日常操作中,相信很多人在BeanUtils.copyProperties复制对象结果为空怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-07-02
  • BeanUtils.copyProperties复制对象结果为空的原因分析
    目录BeanUtils.copyProperties复制对象结果为空原因正确的包错误的包两个类的区别BeanUtils.copyProperties拷贝没成功的坑,记录解决原因具体如...
    99+
    2024-04-02
  • python3--对象之间的交互,类命名空间与对象、实例的命令空间
    对象之间的交互现在有个游戏人与狗,人定义一个类,狗定义一个类,如何让两个类之间互相交互起来,让这个游戏变得更加有意思,代码如下#!/usr/bin/env python # coding: utf-8 __au...
    99+
    2023-01-30
    对象 空间 实例
  • mybatis返回map类型数据空值字段不显示怎么办
    这篇文章主要为大家展示了“mybatis返回map类型数据空值字段不显示怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mybatis返回map类型数据空值字段不显示怎么办”这篇文章吧。my...
    99+
    2023-06-29
  • 解决SpringBoot返回结果如果为null或空值不显示处理问题
    SpringBoot返回结果如果为null或空值不显示处理 第一种方法:自定义消息转换器 @Configuration public class WebMvcConfig ext...
    99+
    2024-04-02
  • 搞懂Python的类和对象名称空间
    代码块的分类 python中分几种代码块类型,它们都有自己的作用域,或者说名称空间: 文件或模块整体是一个代码块,名称空间为全局范围 函数代码块,名称空间为函数自身范围,是本地作用域,在全局范围的内层 函数内部可嵌套函数,嵌套函数...
    99+
    2023-01-30
    对象 名称 空间
  • java返回集合为null还是空集合及空集合的三种写法小结
    目录返回集合为null还是空集合及空集合的三种写法返回空List的方式方式一:new ArrayList()  方式二:new ArrayList(0)方式三:Colle...
    99+
    2024-04-02
  • OpenFeign在传递参数为对象类型是为空的问题
    目录OpenFeign传递参数为对象类型是为空解决的方法很简单使用OpenFeign服务调用传参为null正确为OpenFeign传递参数为对象类型是为空 今天在使用OpenFeig...
    99+
    2024-04-02
  • python函数如何返回一个对象类型
    python使用range函数返回对象类型,具体方法如下:range函数语法:range(start, stop[, step])range函数使用方法:print(range(10))range(0,10)...
    99+
    2024-04-02
  • mybatis返回map类型数据空值字段不显示的解决方案
    目录mybatis返回map数据空值字段不显示查询sql添加每个字段的判断空ResultType利用实体返回springMVC+mybatis查询数据mybatis返回map空值未返...
    99+
    2024-04-02
  • 如何解决SpringBoot返回结果如果为null或空值不显示处理问题
    这篇文章主要介绍如何解决SpringBoot返回结果如果为null或空值不显示处理问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SpringBoot返回结果如果为null或空值不显示处理第一种方法:自定义消息转换...
    99+
    2023-06-20
  • oracle sql优化中not in子句包含null返回结果为空的分析
    这篇文章主要介绍“oracle sql优化中not in子句包含null返回结果为空的分析”,在日常操作中,相信很多人在oracle sql优化中not in子句包含null返回结果为空的分析问题上存在疑惑...
    99+
    2024-04-02
  • Java8中Optional类型和Kotlin中可空类型的使用对比
    本文主要给大家介绍了关于Java8中Optional类型和Kotlin中可空类型使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:在 Java 8中,我们可以使用 Optional 类型来表达可空的类型。pack...
    99+
    2023-05-31
    java8 optional kotlin
  • Mybatis怎么把返回结果封装成map类型
    这篇文章主要讲解了“Mybatis怎么把返回结果封装成map类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis怎么把返回结果封装成map类型”吧!一、Mybatis把返回结果封...
    99+
    2023-07-05
  • 总结java中判断对象是否为空的方法
    我们想要判断对象是否为空,像基本类型那样判断是不可以的, ==={} ?这样是错误的,因为这只是比较引用地址是否相同,所以可以采取下面的方法来进行判断。根据for...in遍历对象,如果存在则返回true,否则返回falsefor ( le...
    99+
    2017-08-16
    java 判断 对象 为空 方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作