kubectl versions Error: exec plugin is configured to use API version client.authentication.k8s.io/v1alpha1

kubectl versions Error: exec plugin is configured to use API version client.authentication.k8s.io/v1alpha1

我正在为我的 eks 环境设置新的 Mac。 安装 kubectl 后,aws-iam-authenticator 和 kubeconfig 文件放置在默认位置。我 运行 命令 kubectl 命令并在命令块中得到下面提到的这个错误。

我的集群使用 v1alpha1 客户端验证 api 版本所以基本上我想在我的 Mac 中使用相同的版本。

我也尝试了最新版本(1.23.0)的kubectl,还是一样的错误。而当我尝试使用 aws-iam-authenticator(版本 0.5.5)时,我无法下载较低版本。

有人可以帮我解决吗?

% kubectl version          
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", BuildDate:"2020-12-08T17:59:43Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}
Unable to connect to the server: getting credentials: exec plugin is configured to use API version client.authentication.k8s.io/v1alpha1, plugin returned version client.authentication.k8s.io/v1beta1

感谢和问候, 萨拉瓦纳

我有同样的问题

您正在使用 aws-iam-authenticator 0.5.5,AWS 更改了它在 0.5.4 中的行为方式以要求 v1beta1

这取决于您的配置,但您可以尝试将您正在使用的 K8s 上下文更改为 v1beta1 通过检查你的 kubeconfig 文件(通常在 ~/.kube/config 中)从 client.authentication.k8s.io/v1alpha1client.authentication.k8s.io/v1beta1

否则切换回 aws-iam-authenticator 0.5.3 - 如果您使用 M1 架构,您可能需要从源代码构建它,因为没有为它构建的 darwin-arm64 二进制文件

这对我使用 M1 芯片很有效

sed -i .bak -e 's/v1alpha1/v1beta1/' ~/.kube/config

我还通过更新我的 kube 配置文件 (~/.kube/config) 中的 apiVersion 值解决了这个问题。

client.authentication.k8s.io/v1alpha1client.authentication.k8s.io/v1beta1

我用下面的命令解决了这个问题

aws eks update-kubeconfig --name mycluster 

这可能有助于解决那些使用 GitHub 操作的人的问题。 对于我的情况,我使用 kodermax/kubectl-aws-eks 和 GitHub 操作。

我使用 kodermax/kubectl-aws-eks 为每个步骤添加了 KUBECTL_VERSIONIAM_VERSION 环境变量,以将它们保持在固定版本中。

  - name: deploy to cluster
    uses: kodermax/kubectl-aws-eks@master
    env:
      KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA_STAGING }}
      ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
      ECR_REPOSITORY: my-app
      IMAGE_TAG: ${{ github.sha }
      KUBECTL_VERSION: "v1.23.6"
      IAM_VERSION: "0.5.3"

使用 kubectl 1.21.9 为我修复了它,使用 asdf:

asdf plugin-add kubectl https://github.com/asdf-community/asdf-kubectl.git
asdf install kubectl 1.21.9

而且我建议使用 .tools-versions 文件:

kubectl 1.21.9

此问题与 error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1" CircleCI

重复