[英]"unable to retrieve the complete list of server APIs: tap.linkerd.io/v1alpha1" error using Linkerd on private cluster in GKE
[英]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 client auth api 版本,所以基本上我也想在我的 Mac 中使用相同的版本。
我也嘗試了 kubectl 的最新版本 (1.23.0),仍然是同樣的錯誤。 而當我嘗試使用 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
。
這取決於您的配置,但您可以嘗試通過檢查您的 kubeconfig 文件(通常在~/.kube/config
中)從client.authentication.k8s.io/v1alpha1
到v1beta1
將您正在使用的 K8s 上下文更改為client.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/v1alpha1
到client.authentication.k8s.io/v1beta1
我用下面的命令解決了這個問題
aws eks update-kubeconfig --name mycluster
還要確保 AWS CLI 版本是最新的。 否則,AWS IAM Authenticator 可能無法與 v1beta1 一起使用:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --update
對於使用 GitHub 操作的用戶,這可能有助於解決此問題。 對於我的情況,我將kodermax/kubectl-aws-eks
與 GitHub 操作一起使用。
我使用kodermax/kubectl-aws-eks
為每個步驟添加了KUBECTL_VERSION
和IAM_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
這個問題是錯誤的重復: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1" CircleCI
請將authentication apiVersion
從v1alpha1
更改為v1beta1
。
老的
apiVersion: client.authentication.k8s.io/v1alpha1
新的
apiVersion: client.authentication.k8s.io/v1beta1
有時,如果 Kube 緩存損壞(在我的情況下發生),就會發生這種情況。
刪除和重新創建以下文件夾對我有用。
sudo rm -rf $HOME/.kube && mkdir -p $HOME/.kube
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.