搭建KubeArmor开发环境执行make deploy遇kustomize模块go.mod错误求助
解决KubeArmor部署时kustomize模块依赖错误
错误原因
sigs.k8s.io/kustomize/kustomize/v3@v3.8.7的go.mod文件包含exclude指令,Go模块机制不允许依赖模块存在这类会改变自身解析逻辑的指令,导致go get安装失败。
解决办法
方法一:手动安装指定版本的kustomize二进制文件
绕过Makefile里的Go模块安装逻辑,直接使用预编译二进制:
- 找到kustomize发布的v3.8.7版本,下载对应你系统架构的预编译二进制包
- 解压压缩包,给kustomize文件添加执行权限,再移动到系统PATH目录(如/usr/local/bin):
chmod +x kustomize sudo mv kustomize /usr/local/bin/ - 验证安装:
输出需包含kustomize versionKustomizeVersion:3.8.7 - 再次执行
make deploy即可。
方法二:修改项目go.mod替换依赖源
在KubeArmor项目根目录的go.mod文件中添加替换指令,绕过有问题的模块路径:
- 打开项目根目录的go.mod,添加以下内容:
replace sigs.k8s.io/kustomize/kustomize/v3 => github.com/kubernetes-sigs/kustomize/kustomize/v3 v3.8.7 - 执行
go mod tidy整理依赖 - 重新运行
make deploy
方法三:升级kustomize版本
如果项目兼容更高版本,可修改Makefile中的kustomize版本号:
- 打开项目的Makefile,找到kustomize安装相关的代码行(对应报错的第142行附近),将版本从
v3.8.7改为v3.9.4(该版本已移除导致问题的exclude指令) - 保存后执行
make deploy
内容的提问来源于stack exchange,提问作者Arin Nagwanshi
相关产品推荐
相关产品推荐

