상세 컨텐츠

본문 제목

(AWS)EKS 구성하기-3

IT/AWS

by 선지92 2021. 1. 2. 01:03

본문

 이전 글에선 Cluster를 구성하고, Worker Node를 구성하는 부분까지 진행했었는데요. 이제 이어서 Cluster 인증을 하는 부분에 대해서 적도록 하겠습니다.

 

진행할 때는 워커 노드 및 쿠버네티스 서비스 등을 올리기 위해 사용할 bastion host를 구성하고 거기에 쿠버네티스 서비스를 올리기 위한 config를 설정하여 준비를 할 예정입니다.

먼저, EC2 home에서 이런 bastion host 역할을 할 EC2 Instance를 구성해줍니다. 전 아마존 리눅스2로 구성을 했습니다.

그리고 준비가 완료되면 해당 서버에 kubectl, eksctl 등의 커맨드를 설치해주겠습니다.

1. kubectl install

먼저 kubectl 를 구성하기 위해서 s3 URL로 curl로 다운받아주겠습니다.

그 후에 다운을 받은 kubectl에 실행권한을 넣어줍니다.

그 후 그 명령어를 환경 변수로 등록을 해줍니다.

이러한 과정이 끝나고 나서 kubectl 에 대한 버전을 확인해주면 아래와 같이 확인할 수 있습니다.

그리고 이러서 eksctl 을 구성해주겠습니다.

2. eksctl install

kubectl을 구성하는 것과 마찬가지로 이번엔 github url을 입력하고 curl로 다운을 받아줍니다.

그리고 이 명령어를 수행해주기 위해 해당 파일을 /usr/local/bin으로 넘겨줍니다.

 

그러면 eksctl을 사용할 준비가 완료되었고, 사용할 준비가 되었는지를 확인하기 위해 버전을 확인해줍니다.

# 추가적으로 docker에 대해선 yum으로 설치를 하여 사용했습니다.

 

그리고 그 이외로 AWS IAM을 통해서 인증을 진행할 때 사용할 aws-iam-authenticator를 설치해주겠습니다.

 

AWS에서 제공해주는 ​aws-iam-authenticator을 다운 받아줍니다.

그리고 해당 파일에 실행 권한 및 환경변수로 등록을 해줍니다.

위의 과정이 끝난 후 제대로 설치가 되었는지 help 명령어를 통해서 확인을 해줍니다.

물론 위에 나와있는 aws-iam-authenticator의 경우엔 aws cli 1.16.156 이상 버전의 경우 설치를 하실 필요가 없으니 참고 부탁드립니다.

 

위와 같이 kubectl과 eksctl, aws-iam-authenticator의 설치가 완료되면 바로 이어서 클러스터 인증 과정을 진행하겠습니다.

이 과정을 진행하실 땐 aws configure를 통해서 credential을 구성해주신 상태에서 진행하겠습니다.

aws cli를 통해서 kubeconfig를 구성해줍니다.

# aws eks --region ap-northeast-2 update-kubeconfig --name <cluster name>

이렇게 config가 되시면 그 업무를 수행한 계정의 home 디렉토리 밑 .kube 디렉토리 밑에 config 파일을 통해서 확인하실 수 있습니다.

이렇게 구성이 되시면 쿠버네티스 명령어를 쳐봄으로써 쿠버네티스 사용할 수 있는지를 확인해봅니다.

만약 아래와 같이 쿠버네티스 노드 정보를 끌고오는 명령어를 쳤는데도 꽤 오랜 시간동안 진행이 안되신다면 해당 bastion host와 worker node 간에 통신이 가능하게 열려있는지 확인해주시고 안열려있으면 이를 열어줍니다.

그리고 통신하는데 문제가 없으시다고 하시면 아래와 같이 현재 cluster에 구성되어 있는 worker node를 확인하실 수 있습니다.

이렇게 까지 되시면 이제 이 EC2를 통해서 쿠버네티스 서비스를 올려주시면 되는데요

만약 EKS Cluster를 생성한 계정과 실제 서비스를 올리고 작업하는 계정이 다를 경우엔 권한 문제로 인해서 config에 구성한 Cluster의 정보들을 확인할 수 없는데요

그럴 경우엔 아래와 같이 aws에서 제공하는 권한 aws-auth-cm.yaml 파일을 다운을 받고 수정 후 적용을 해주면 됩니다.

다운이 완료되시면, 먼저 aws configure를 통해서 CLI로 접근하는 계정을 Cluster를 생성했던 계정으로 변경을 해줍니다.

그 후에 아래와 같이 role에 대해 특정 계정에게 할당한다는 내용으로 작성을 해줍니다.

그렇게 완료되시면 그 yaml 파일을 적용해주시면 됩니다.

그 후에 그 권한을 할당해준 계정으로 접근하시고 쿠버네티스 명령어를 치시면 아래와 같이 접근이 가능하신 것을 확인할 수 있습니다.

 

이렇게 까지 구성을 하시면 이제 쿠버네티스 명령어를 통해서 서비스를 올려주시면 됩니다.

이상 긴 글 읽어주셔서 감사합니다.

 

 

참고 사이트

docs.aws.amazon.com/ko_kr/eks/latest/userguide/managing-auth.html

'IT > AWS' 카테고리의 다른 글

(AWS)DataSync 구성하기  (0) 2021.01.03
(AWS)VM Import  (0) 2021.01.02
(AWS)EKS 구성하기-2  (0) 2021.01.02
(AWS)EKS 구성하기-1  (0) 2021.01.02
(AWS)EFS 구성하기  (0) 2020.12.23

관련글 더보기