kubernetes - 此编解码器不允许编码:*versioning.codec
问题描述
我使用此框架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)。
这到底是什么意思?我认为生成的客户端知道自定义资源?
感谢帮助...
解决方案
由于restclient配置错误,我遇到了同样的问题。在此处的示例中查看如何创建和配置 restclient 。
推荐阅读
- python - 从对象列表构建 dataFrame 花费的时间太长
- javascript - 如果输入搜索框为空,则取消功能
- javascript - 过滤后reduce的目的以及为什么在过滤器内部调用map?
- java - 是否可以使用 Spring Cloud Config 将复杂的配置传递给 Spring Cloud 流函数
- c# - 使用笛卡尔积打印/合并两个列表的内容
- elasticsearch - 在 Elastic slowlog 中识别使用 NEST 编写的查询
- java - 如何对 JavaFX 图表轴拖动执行操作?
- excel - Excel OR 函数未按预期运行
- wordpress - 强制 Wordpress/服务器显示具有相同文件名的新图像
- python - 避免在 x 行之前重复