【问题标题】:k8s.io/client-go/pkg/api/v1 was retired, how to parse event.Object?k8s.io/client-go/pkg/api/v1 已退役,如何解析 event.Object?
【发布时间】:2020-12-16 18:51:01
【问题描述】:

我正在观看 pod 并从通道 ResultChan() 获取事件,现在我想解析 event.Object。我看到一段代码是这样的:event.Object.(*apiv1.Pod),请看下面的代码,可惜k8s.io/client-go/pkg/api/v1已经退役了,这段代码没有没用。

我的问题是,如何从 event.Object 中获取 Pod 信息?有哪些新的 API 可以访问或解析 event.Object?

import (
    apiv1 "k8s.io/client-go/pkg/api/v1"
)
    watcher, err := k8sClient.CoreV1().Pods(namespace).Watch(ctx, metav1.ListOptions{
        LabelSelector: labels,
    })

    event := <-watcher.ResultChan():

    pod, ok := event.Object.(*apiv1.Pod)

【问题讨论】:

    标签: kubernetes client-go


    【解决方案1】:

    似乎第 5 版确实有重大的 API 更改:

    将 pkg/api 和 pkg/apis 移至 k8s.io/api。其他 Kubernetes 存储库也从那里导入类型,因此它们可以与 客户端去。

    所以你可以使用k8s.io/api/core/v1 代替k8s.io/client-go/pkg/api/v1

    import ( 
        corev1  "http://k8s.io/api/core/v1"  
        "k8s.io/apimachinery/pkg/api/errors"
        metav1  "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/client-go/kubernetes"  
        "k8s.io/client-go/tools/clientcmd"
    )
    
    

    【讨论】:

      猜你喜欢
      • 2021-05-25
      • 2020-11-18
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 2018-04-08
      • 2018-04-17
      • 1970-01-01
      • 2016-05-29
      相关资源
      最近更新 更多