我已经两个月没用kubectl了。它在6月份运行良好,但现在我得到了以下错误:
$ kubectl
fatal error: runtime: bsdthread_register error
runtime stack:
runtime.throw(0x2cb65a5, 0x21)
/usr/local/go/src/runtime/panic.go:596 +0x95 fp=0x7fff5fbff810 sp=0x7fff5fbff7f0
runtime.goenvs()
/usr/local/go/src/runtime/os_darwin.go:108 +0xa0 fp=0x7fff5fbff840 sp=0x7fff5fbff810
runtime.schedinit()
/usr/local/go/src/runtime/proc.go:486 +0xa1 fp=0x7fff5fbff880 sp=0x7fff5fbff840
runtime.rt0_go(0x7fff5fbff8b0, 0x1, 0x7fff5fbff8b0, 0x0, 0x1, 0x7fff5fbffa38, 0x0, 0x7fff5fbffa40, 0x7fff5fbffa5c, 0x7fff5fbffa6c, ...)
/usr/local/go/src/runtime/asm_amd64.s:158 +0x183 fp=0x7fff5fbff888 sp=0x7fff5fbff880我读到这可能是由websense引起的,但我的Mac上没有安装websense。据我所知,唯一改变的是对Max的例行更新(10.12.6)和对gcloud的例行更新(163)。
我试过重新安装kubectl,gcloud,但还是失败了。据我所知,Go有问题,我认为Go是gcloud中包含的核心库的一部分。
关于如何排除/修复这个问题,有什么想法吗?由于这个问题,我无法连接到我的任何豆荚。
发布于 2022-06-16 18:51:16
这个问题是由MacOS 12中的系统调用库更改引起的。旧的二进制文件使用的是一个不再支持的旧库。
更新你的kubectl到一个新的版本。这应该能解决问题。
如果由于需要旧版本(例如,由于api更改)而无法更新,则可以使用新的go版本构建所需的kubectl。
必要:
go 1.11或更高版本
brew install go去回购
git clone https://github.com/kubernetes/kubernetes.git选择所需的版本。例如1.11.3
git checkout tags/v1.11.3构建
GO111MODULE=off make GO111MODULE=off关闭默认情况下自Go1.16以来所需的模块。如果您的kubernetes版本较新,则可能需要打开它们。如果是这样的话,只需去掉GO111MODULE=off。
构建完成后,您可以在_output/bin中为您的系统找到kubectl。
发布于 2021-12-30 05:38:20
我在mac 12上也遇到了同样的错误,根据这个问题,它是由旧版本的aws-iam-authenticator引起的。重新安装aws-iam-authenticator后,该问题将通过
brew install aws-iam-authenticatorhttps://stackoverflow.com/questions/45285907
复制相似问题