각 계정의 User로 로그인 한 경우, 아래에서 처럼 eks cluster에 대한 정보를 확인 할 수 없습니다. 이것은 권한이 없기 때문입니다. User의 권한을 Cloud9에서 추가해 줍니다.
configmap 인증 정보 수정
cloud9 IDE Terminal 에 kubectl 명령을 통해서, aws-auth 파일을 확인해 봅니다.
kubectl get configmap -n kube-system aws-auth -o yaml
aws-auth.yaml 파일을 아래 디렉토리에 생성합니다.
kubectl get configmap -n kube-system aws-auth -o yaml | grep -v "creationTimestamp\|resourceVersion\|selfLink\|uid" | sed '/^ annotations:/,+2 d' > ~/environment/aws-auth.yaml
cp ~/environment/aws-auth.yaml ~/environment/aws-auth_backup.yaml
LAB에서 사용 중인 USER ID를 Shell 환경 변수에 입력하고, 현재 ACCOUNT ID를 확인합니다.
Account ID는 이미 Shell 환경변수에 저장해 두었습니다.
## USER_ID의 값은 현재 콘솔에서의 user id
export USER_ID=user01
echo "export USER_ID=${USER_ID}" | tee -a ~/.bash_profile
source ~/.bash_profile
## ACCOUNT ID 확인
echo $ACCOUNT_ID
eksctl 명령의 iamidentitymapping 을 사용해서, IAM user와 Kubernetes의 각 Role Binding 에 설정을 매핑합니다.
아래 예제에서는 user01을 system-masters의 role에 바인딩해서, 매핑합니다.
아래와 같이 eksctl 명령을 통해 현재 IAM과 Kubernetes Role 이 바인딩 된 목록을 확인합니다.
eksctl get iamidentitymapping --cluster ${ekscluster_name}
EKS Cluster 결과 확인.
EKS Cluster를 다시 콘솔에서 확인해 봅니다. 생성한 모든 노드들을 확인할 수 있습니다. 생성한 클러스터를 선택합니다
이제 아래와 같은 EKS Cluster가 완성되었습니다. kubectl 명령을 통해 확인해 봅니다.
#kube-system namespace에 생성된 자원 확인
kubectl -n kube-system get all
#주요 Pod의 상세 정보 확인
kubectl -n kube-system pods <pod-name> -o wide
# node 상세 정보 확인
kubectl get nodes -o wide