kubectl 1.24 error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"

eks로 만든 cluster를 kubectl이 config map을 로드하지 못할 경우

오랫만에 eks로 cluster를 만든 후 kubectl을 통해 aws의 kubernetes config를 불러 오려고 했는데 아래와 같이 오류가 났다.

steven@steven-ubuntu:~$ kubectl version
error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"

찾아보니 kubectl 12.4.x 버전에서 eks와 연동해서 사용할 경우 발생하는 오류라고 한다.

https://github.com/aws/aws-cli/issues/6920

대부분의 사람들이 kubectl 버전을 12.3.6으로 내리고 문제가 해결 되었다고 한다.

 

해결 방법

kubectl v12.3.6을 다운받는다.

steven@steven-ubuntu:~$ curl -LO https://dl.k8s.io/release/v1.23.6/bin/linux/amd64/kubectl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   154  100   154    0     0    631      0 --:--:-- --:--:-- --:--:--   631
100 44.4M  100 44.4M    0     0  21.7M      0  0:00:02  0:00:02 --:--:-- 25.5M

 

다운받은 kubectl을 기존 kubectl 실행 파일과 변경해 준다.

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl 

steven@steven-ubuntu:~$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl 
steven@steven-ubuntu:~$ kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.6", GitCommit:"ad3338546da947756e8a88aa6822e9c11e7eac22", GitTreeState:"clean", BuildDate:"2022-04-14T08:49:13Z", GoVersion:"go1.17.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21+", GitVersion:"v1.21.12-eks-a64ea69", GitCommit:"d4336843ba36120e9ed1491fddff5f2fec33eb77", GitTreeState:"clean", BuildDate:"2022-05-12T18:29:27Z", GoVersion:"go1.16.15", Compiler:"gc", Platform:"linux/amd64"}

aws eks config map을 최신화 시켜준다

https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html

steven@steven-ubuntu:~$ aws eks update-kubeconfig --region <<region_name>> --name <<cluster_name>>
Updated context arn:aws:eks:us-east-2:144965779334:cluster/udacity-cluster in /home/steven/.kube/config

~/.kube/config 디렉토리에 eks의 context가 업데이트 되었다.

kubectl config get-context

steven@steven-ubuntu:~$ kubectl config get-contexts
CURRENT   NAME                                                         CLUSTER                                                      AUTHINFO                                                     NAMESPACE
*         arn:aws:eks:us-east-2:144965779334:cluster/udacity-cluster   arn:aws:eks:us-east-2:144965779334:cluster/udacity-cluster   arn:aws:eks:us-east-2:144965779334:cluster/udacity-cluster

kubectl get node

steven@steven-ubuntu:~$ kubectl get node
NAME                                        STATUS   ROLES    AGE   VERSION
ip-10-100-3-85.us-east-2.compute.internal   Ready    <none>   27m   v1.21.12-eks-5308cf7
728x90
반응형

'AWS' 카테고리의 다른 글

AWS 요금 확인 및 리소스 정리하기  (0) 2022.07.09
RDS 리소스 삭제하기  (0) 2022.07.09
EKS prometheus and grafana 설치하기  (0) 2022.02.07
kubernetes 명령어 모음  (2) 2022.02.06
AWS CLI 명령어 모음 (계속)  (0) 2022.02.06