跳至内容

如何对使用堡垒主机时的 Amazon EKS 集群错误进行故障排除?

1 分钟阅读
0

当我使用 kubectl 客户端从堡垒主机连接到 Amazon Elastic Kubernetes Service (Amazon EKS) 时,我收到以下错误:"error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1""。我想解决这个问题。

解决方法

当您使用的 kubectl 版本与 Kubernetes 集群的 API 版本不兼容时,您会收到 invalid apiVersion 错误。当您使用早期版本的 AWS 命令行界面 (AWS CLI) 更新 $home/.kube/config 中的 kubeconfig 文件时,通常会出现此错误。要解决此问题,请将 AWS CLI 升级到最新版本。然后,再次更新 kubeconfig 文件。当您更新 kubeconfig 文件时,kubeconfig 文件中的 apiVersion 字段会更新到最新版本 (v1beta1)。

升级到最新版本的 AWS CLI

安装或更新到最新版本的 AWS CLI

**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅排查 AWS CLI 错误

安装支持的 kubectl 版本

**注意:**您必须使用与 Amazon EKS 集群控制平面相差一个小版本的 kubectl 版本。例如,1.28 kubectl 客户端适用于 Kubernetes 1.27、1.28 和 1.29 集群。

要为您的 Amazon EKS 集群版本安装支持的 kubectl 版本,请完成以下步骤:

  1. 下载 kubectl,请运行以下命令:

        $ curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.29.3/2024-04-19/bin/linux/arm64/kubectl.sha256
        $ chmod +x ./kubectl

    **注意:**将 linux 替换为您的操作系统,将 arm64 替换为您的分配,将 1.29 替换为您的 Kubernetes 版本。

  2. 将下载的 kubectl 文件复制到路径中的文件夹。如果您已安装 kubectl 的某个版本,请创建 $HOME/bin/kubectl

       $ mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH

    **注意:**您必须先在 $PATH 中列出 $HOME/bin

  3. 要验证已安装的 kubectl 版本,请运行以下命令:

       $ kubectl version --client
  4. (可选)将 $HOME/bin 路径添加到 Shell 初始化文件中:

       $ echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
  5. 要将您的 kubeconfig 文件从 v1alpha1 更新到 v1beta1,请运行以下命令:

       $ aws eks update-kubeconfig --name clusterName --region regionName

    **注意:**请将 clusterName 替换为您的集群名称,将 regionName 替换为您的 AWS 区域。

  6. 要测试是否可以连接到集群,请运行以下命令:

      $ kubectl get svc
      $ kubectl get pod
AWS 官方已更新 1 年前