【해결 방법】 Amazon EKS에서`kubectl get svc`명령 실패
문제
Amazon EKS에서 클러스터를 생성한 후 kubectl get svc
명령을 실행해도 실패함
# Amazon EKSクラスターのkubeconfigを取得→成功
$ aws eks update-kubeconfig --name <cluster_name>
Added new context arn:aws:eks:us-west-2:xxxxx:cluster/<cluster_name> to /Users/<username>/.kube/config
# 失敗するコマンド
$ kubectl get svc
error: the server doesn't have a resource type "svc"
원인
EKS 클러스터를 생성한 IAM 사용자와 AWS CLI의 IAM 사용자가 다릅니다.
@ngyuki 님에게 정보를 제공해 주셨습니다 🙇♂️
참고 : Amazon EKS 시작 - Amazon EKS
콘솔을 사용하여 클러스터를 생성하는 경우 클러스터에서 kubectl 명령을 실행할 때 동일한 IAM 사용자 자격 증명이 AWS SDK 자격 증명 체인에 있는지 확인해야 합니다.
해결 방법
패턴 1. AWS CLI의 IAM 사용자를 EKS 클러스터를 생성한 사용자로 전환
패턴 2. AWS CLI의 IAM 사용자로 EKS 클러스터 재작성( CLI에서 EKS 클러스터를 다시 만드는 방법은 여기 )
보충
루트 계정에서의 작업은 더 이상 사용되지 않으므로(참고 ) 루트 계정으로 로그인한 콘솔에서 EKS 클러스터를 만든 경우 EKS 클러스터를 삭제하고 다른 사용자가 EKS 클러스터를 다시 작성하는 것이 좋습니다. 보인다
다음은 원인을 알 수 없을 때의 해결 방법입니다.
여기보다 아래의 내용은 원인이 불명했을 때에 투고한 해결 방법입니다.
조사
해외 포럼이나 블로그 등에서 소개된 해결 방법
더 똑똑한 해결책이 있으면 알려주세요 m (_ _) m
해결 방법
결과
1. AWS CLI에서 EKS 클러스터 생성
○: 해결할 수 있었다
2. AWS CLI에 IAM 설정
×: 해결되지 않았다
3. kubectl 버전 업데이트
×: 해결되지 않았다
4. aws-iam-authenticator 설정
×: 해결되지 않았다
해결된 단계
1. AWS CLI에서 EKS 클러스터 생성
EKS 클러스터를 콘솔에서 생성하면 이 문제가 발생했지만, AWS CLI에서 EKS 클러스터를 생성하면 해결했다는 정보를 보면서 실천한 결과 해결할 수 있었다.
보충
CloudFormation에서 만든 클러스터에서도 비슷한 문제가 발생하는 것 같습니다.
코멘트란에서 @ishigero 님으로부터 정보를 제공해 주셨습니다 m(_ _)m
참고 : Amazon EKS 시작 - Amazon EKS
프로시저 1. 기존 클러스터 설정 확인
AWS 콘솔에서 만든 클러스터
# Amazon EKSクラスターのkubeconfigを取得→成功
$ aws eks update-kubeconfig --name <cluster_name>
Added new context arn:aws:eks:us-west-2:xxxxx:cluster/<cluster_name> to /Users/<username>/.kube/config
# 失敗するコマンド
$ kubectl get svc
error: the server doesn't have a resource type "svc"
EKS 클러스터를 생성한 IAM 사용자와 AWS CLI의 IAM 사용자가 다릅니다.
@ngyuki 님에게 정보를 제공해 주셨습니다 🙇♂️
참고 : Amazon EKS 시작 - Amazon EKS
콘솔을 사용하여 클러스터를 생성하는 경우 클러스터에서 kubectl 명령을 실행할 때 동일한 IAM 사용자 자격 증명이 AWS SDK 자격 증명 체인에 있는지 확인해야 합니다.
해결 방법
패턴 1. AWS CLI의 IAM 사용자를 EKS 클러스터를 생성한 사용자로 전환
패턴 2. AWS CLI의 IAM 사용자로 EKS 클러스터 재작성( CLI에서 EKS 클러스터를 다시 만드는 방법은 여기 )
보충
루트 계정에서의 작업은 더 이상 사용되지 않으므로(참고 ) 루트 계정으로 로그인한 콘솔에서 EKS 클러스터를 만든 경우 EKS 클러스터를 삭제하고 다른 사용자가 EKS 클러스터를 다시 작성하는 것이 좋습니다. 보인다
다음은 원인을 알 수 없을 때의 해결 방법입니다.
여기보다 아래의 내용은 원인이 불명했을 때에 투고한 해결 방법입니다.
조사
해외 포럼이나 블로그 등에서 소개된 해결 방법
더 똑똑한 해결책이 있으면 알려주세요 m (_ _) m
해결 방법
결과
1. AWS CLI에서 EKS 클러스터 생성
○: 해결할 수 있었다
2. AWS CLI에 IAM 설정
×: 해결되지 않았다
3. kubectl 버전 업데이트
×: 해결되지 않았다
4. aws-iam-authenticator 설정
×: 해결되지 않았다
해결된 단계
1. AWS CLI에서 EKS 클러스터 생성
EKS 클러스터를 콘솔에서 생성하면 이 문제가 발생했지만, AWS CLI에서 EKS 클러스터를 생성하면 해결했다는 정보를 보면서 실천한 결과 해결할 수 있었다.
보충
CloudFormation에서 만든 클러스터에서도 비슷한 문제가 발생하는 것 같습니다.
코멘트란에서 @ishigero 님으로부터 정보를 제공해 주셨습니다 m(_ _)m
참고 : Amazon EKS 시작 - Amazon EKS
프로시저 1. 기존 클러스터 설정 확인
AWS 콘솔에서 만든 클러스터
여기보다 아래의 내용은 원인이 불명했을 때에 투고한 해결 방법입니다.
조사
해외 포럼이나 블로그 등에서 소개된 해결 방법
더 똑똑한 해결책이 있으면 알려주세요 m (_ _) m
해결 방법
결과
1. AWS CLI에서 EKS 클러스터 생성
○: 해결할 수 있었다
2. AWS CLI에 IAM 설정
×: 해결되지 않았다
3. kubectl 버전 업데이트
×: 해결되지 않았다
4. aws-iam-authenticator 설정
×: 해결되지 않았다
해결된 단계
1. AWS CLI에서 EKS 클러스터 생성
EKS 클러스터를 콘솔에서 생성하면 이 문제가 발생했지만, AWS CLI에서 EKS 클러스터를 생성하면 해결했다는 정보를 보면서 실천한 결과 해결할 수 있었다.
보충
CloudFormation에서 만든 클러스터에서도 비슷한 문제가 발생하는 것 같습니다.
코멘트란에서 @ishigero 님으로부터 정보를 제공해 주셨습니다 m(_ _)m
참고 : Amazon EKS 시작 - Amazon EKS
프로시저 1. 기존 클러스터 설정 확인
AWS 콘솔에서 만든 클러스터
1. AWS CLI에서 EKS 클러스터 생성
EKS 클러스터를 콘솔에서 생성하면 이 문제가 발생했지만, AWS CLI에서 EKS 클러스터를 생성하면 해결했다는 정보를 보면서 실천한 결과 해결할 수 있었다.
보충
CloudFormation에서 만든 클러스터에서도 비슷한 문제가 발생하는 것 같습니다.
코멘트란에서 @ishigero 님으로부터 정보를 제공해 주셨습니다 m(_ _)m
참고 : Amazon EKS 시작 - Amazon EKS
프로시저 1. 기존 클러스터 설정 확인
AWS 콘솔에서 만든 클러스터
메모해 둡니다.
2단계. AWS CLI에서 클러스터 생성
참고한 정보를 참조하여 AWS CLI에서 클러스터 생성
보충
--role-arn
에 Role ARN 의 값을 지정한다--resources-vpc-config
에 Subnets,Security groups 값을 지정합니다.$ aws eks create-cluster --name <cluster_name> \
--role-arn xxx \
--resources-vpc-config \
subnetIds=subnet-xxx,subnet-xxx,securityGroupIds=sg-xxx
{
"cluster": {
"status": "CREATING",
"name": "<cluster_name>",
"certificateAuthority": {},
"roleArn": "xxx",
"resourcesVpcConfig": {
"subnetIds": [
"subnet-xxx",
"subnet-xxx"
],
"vpcId": "vpc-xxx",
"securityGroupIds": [
"sg-xxx"
]
},
"version": "1.10",
"arn": "arn:aws:eks:us-west-2:xxx:cluster/<cluster_name>",
"platformVersion": "eks.2",
"createdAt": xxx
}
}
3단계. 클러스터가 생성되었는지 확인
$ aws eks describe-cluster --name <cluster_name> --query cluster.status
"ACTIVE"
4단계. kubectl get svc 명령이 성공했는지 확인
# 作成したクラスターのkubeconfigを取得
$ aws eks update-kubeconfig --name <cluster_name>
Updated context arn:aws:eks:us-west-2:xxx:cluster/<cluster_name> in /Users/<username>/.kube/config
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 3m
해결할 수 없는 단계
2. AWS CLI에 IAM 설정
AWS CLI에 IAM이 설정되어 있지 않으면 본 문제가 발생한다는 정보를 보았지만, AWS CLI에서 Amazon EKS 클러스터의 kubeconfig를 얻을 수 있기 때문에 AWS CLI 설정은 문제 없다고 판단했다.
aws configure
AWS Access Key ID [****************WVJA]:
AWS Secret Access Key [****************LD/m]:
Default region name [us-west-2]:
Default output format [None]:
# Amazon EKSクラスターのkubeconfigを取得→成功
$ aws eks update-kubeconfig --name <cluster_name>
Added new context arn:aws:eks:us-west-2:xxxxx:cluster/<cluster_name> to /Users/<username>/.kube/confi
3. kubectl 버전 업데이트
kubectl 버전이 1.10.xx 이상이 아니면 문제가 발생한다는 정보를 보았지만 버전은 문제 없다고 판단했다.
$ kubectl version --short --client
Client Version: v1.10.3
참고 : kubectl 설치 - Amazon EKS
4. aws-iam-authenticator 설정
aws-iam-authenticator의 설정이 없으면 문제가 발생한다는 정보를 보았지만 설정은 문제 없다고 판단했다.
$ aws-iam-authenticator help
A tool to authenticate to Kubernetes using AWS IAM credentials
...
참고 : kubectl을 Amazon EKS용으로 설정합니다. - Amazon EKS
Reference
이 문제에 관하여(【해결 방법】 Amazon EKS에서`kubectl get svc`명령 실패), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NaokiIshimura/items/60f90d9d925ca2b103bb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
aws configure
AWS Access Key ID [****************WVJA]:
AWS Secret Access Key [****************LD/m]:
Default region name [us-west-2]:
Default output format [None]:
# Amazon EKSクラスターのkubeconfigを取得→成功
$ aws eks update-kubeconfig --name <cluster_name>
Added new context arn:aws:eks:us-west-2:xxxxx:cluster/<cluster_name> to /Users/<username>/.kube/confi
$ kubectl version --short --client
Client Version: v1.10.3
$ aws-iam-authenticator help
A tool to authenticate to Kubernetes using AWS IAM credentials
...
Reference
이 문제에 관하여(【해결 방법】 Amazon EKS에서`kubectl get svc`명령 실패), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NaokiIshimura/items/60f90d9d925ca2b103bb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)