【问题标题】:encoding is not allowed for this codec: *versioning.codec此编解码器不允许编码:*versioning.codec
【发布时间】:2019-07-25 22:52:35
【问题描述】:

我使用这个框架 https://github.com/operator-framework/operator-sdk 制作了一个 kubernetes 运算符,其中定义了一个小的自定义资源定义并生成了一个客户端集。

我为这个自定义资源创建了一个客户端:

imports are (
    "k8s.io/client-go/kubernetes"
    "k8s.io/client-go/rest"
)

config, err := rest.InClusterConfig()
kubernetesClientset := kubernetes.NewForConfig(config)
// my generated CR clientset
v1alpha1.New(kubernetesClientset.RESTClient())

所以我只是使用 kubernetes 为 pod 提供的配置并创建了一个默认的 k8s REST 客户端集,并在我的自定义资源的客户端集中使用它(这甚至是一个好习惯吗?)。

但是,当我尝试使用我的自定义资源客户端集并尝试创建自定义资源的实例时,客户端错误encoding is not allowed for this codec: *versioning.codec(我猜它来自这里https://github.com/kubernetes/apimachinery/blob/master/pkg/runtime/codec.go#L104)。

这到底是什么意思?我认为生成的客户端知道自定义资源?

感谢您的帮助...

【问题讨论】:

    标签: kubernetes client kubernetes-apiserver kubernetes-custom-resources


    【解决方案1】:

    由于 restclient 配置错误,我遇到了同样的问题。看看例子here是如何创建和配置restclient的。

    【讨论】:

    • 您好,欢迎来到 Stack Overflow!您能否在答案中包含您提供的链接的相关部分(editing it)?将来链接可能会变得不可用。
    猜你喜欢
    • 2017-09-06
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多