本文主要是介绍webhook-k8s API和apimachinery版本高于Client-go,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 问题
- 使用
go mod tidy
存在丢弃的版本
go: downloading github.com/josharian/intern v1.0.0
go: finding module for package k8s.io/api/flowcontrol/v1alpha1
go: simple-webhook/types importsk8s.io/client-go/rest tested byk8s.io/client-go/rest.test importsk8s.io/client-go/kubernetes/scheme importsk8s.io/api/flowcontrol/v1alpha1: module k8s.io/api@latest found (v0.30.2), but does not contain package k8s.io/api/flowcontrol/v1alpha1
- 但是我的代码中并没有导入
k8s.io/api/flowcontrol/v1alpha1
,这个可能存在某个中的依赖项
package typesimport ("context""github.com/golang/glog""k8s.io/apimachinery/pkg/api/errors"metav1 "k8s.io/apimachinery/pkg/apis/meta/v1""k8s.io/apimachinery/pkg/runtime/schema""k8s.io/client-go/dynamic""k8s.io/client-go/rest"
)
2. 原因
- 检查go.mod文件发现,k8s的api版本和apimachinery同client-go的版本不一致,高于后者
module simple-webhookgo 1.22.3require (
github.com/golang/glog v1.2.1
k8s.io/api v0.30.2
k8s.io/apimachinery v0.30.2
k8s.io/client-go v0.23.17
)
- 推测api的高版本中已经移除了flowcontrol的v1alpha1版本支持
- v1alpha1 版本的 API 是用于实验和早期访问的,它们可能会在后续的 Kubernetes 版本中被移除或替换为更稳定的版本(如 v1)
修改后重新执行go mod tidy
这篇关于webhook-k8s API和apimachinery版本高于Client-go的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!