1

我正在观看 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)

4

1 回答 1

0

似乎第 5 版确实发生了重大的 API 更改:

将 pkg/api 和 pkg/apis 移至 k8s.io/api。其他 kubernetes 存储库也从那里导入类型,因此它们可以与 client-go 组合。

所以 no 而不是k8s.io/client-go/pkg/api/v1你可以使用k8s.io/api/core/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"
)

于 2020-12-16T10:51:01.717 回答