1. 问题
go: downloading github.com/josharian/intern v1.0.0
go: finding module for package k8s.io/api/flowcontrol/v1alpha1
go: simple-webhook/types imports
k8s.io/client-go/rest tested by
k8s.io/client-go/rest.test imports
k8s.io/client-go/kubernetes/scheme imports
k8s.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 types
import (
"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-webhook
go 1.22.3
require (
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