16

kubernetes client-go依赖报错

 3 years ago
source link: https://studygolang.com/articles/28968
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

初次使用kubenetes client-go来学习遇到的问题。

代码使用github 练习:examples/out-of-cluster-client-configuration/main.go

使用go build -o app . 出现以下错误

# k8s.io/client-go/tools/clientcmd/api/v1
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\tools\clientcmd\api\v1\conversion.go:29:15: scheme.AddConversionFuncs undefined (type *runtime.Scheme has no field or method AddConversionFuncs)
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\tools\clientcmd\api\v1\conversion.go:31:12: s.DefaultConvert undefined (type conversion.Scope has no field or method DefaultConvert)
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\tools\clientcmd\api\v1\conversion.go:34:12: s.DefaultConvert undefined (type conversion.Scope has no field or method DefaultConvert)
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\tools\clientcmd\api\v1\conversion.go:37:12: s.DefaultConvert undefined (type conversion.Scope has no field or method DefaultConvert)
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\tools\clientcmd\api\v1\conversion.go:40:12: s.DefaultConvert undefined (type conversion.Scope has no field or method DefaultConvert)
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\tools\clientcmd\api\v1\conversion.go:43:12: s.DefaultConvert undefined (type conversion.Scope has no field or method DefaultConvert)
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\tools\clientcmd\api\v1\conversion.go:46:12: s.DefaultConvert undefined (type conversion.Scope has no field or method DefaultConvert)
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\tools\clientcmd\api\v1\conversion.go:49:12: s.DefaultConvert undefined (type conversion.Scope has no field or method DefaultConvert)
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\tools\clientcmd\api\v1\conversion.go:52:12: s.DefaultConvert undefined (type conversion.Scope has no field or method DefaultConvert)
# k8s.io/client-go/rest
D:\software\gotest\pkg\mod\k8s.io\[email protected]+incompatible\rest\request.go:598:31: not enough arguments in call to watch.NewStreamWatcher

golang version:1.14

client-go version: 1.18

修改go.mod 文件,替换k8s.io\[email protected]+incompatible为k8s.io/client-go v0.18.2,然后在go build就可以了,github issue中解释如下:

Related issue is that go get k8s.io/client-go@latest resolves to v11.0.0+incompatible not v0.18.2. Should I break this off as a separate discussion?

Unfortunately, that is not possible to resolve. k8s.io/client-go had major versions tagged prior to the introduction of go modules. go modules require any major version X >= 2 rename the module to k8s.io/client-go/v<X>.

Go considers tags >= 2.x.x which contain a go.mod file with a module name that doesn't end with /v<X> invalid and won't include them when resolving @latest, so until the k8s.io/client-go module is renamed with version suffixes, go get must indicate specific versions (e.g. go get k8s.io/[email protected])

欢迎关注我们的微信公众号,每天学习Go知识

FveQFjN.jpg!web

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK