EKS 구축 - 작업공간 구성

반영환·2023년 7월 28일
0

eks

목록 보기
2/9
post-thumbnail

EKS 구축 - 작업공간 구성

EKS 환경 작업을 하기 위한, Control Plane에 있는 API Server에 요청을 보내기 위한 작업공간이 필요한데 bastion host 라는 SSH Jump용 EC2를 개설한 뒤에 자격증명을 거치고 하는 세팅을 하기 복잡하기 때문에 간편하게 Cloud9을 사용하기로 했다.

Cloud9 생성

  • Name : user-cloud9
  • Environment type : New EC2 Instance
  • Instance Type : 제일 작은거
  • Platform : Ubuntu
  • VPC setting : 생성했던 VPC
  • Subnet : 퍼블릭 서브넷 중 하나 선택

작업 공간 설정

환경 변수 설정

작업 공간에 들어가 환경변수를 설정해준다.

sudo vi /etc/profile

ACCOUNT=userName 
AWSNUM=111122223333 
AWSREGION=ap-northeast-2

키 생성

키는 워커 노드에 ssh 점프시 사용된다.

ssh-keygen
##Enter 3번 클릭하면 기본 설정으로 키가 생긴다.

키 업로드

aws ec2 import-key-pair --key-name "ekskey-$ACCOUNT" --public-key-material file://~/.ssh/id_rsa.pub

# aws ec2 CLI version 2 사용시
aws ec2 import-key-pair --key-name "ekskey-$ACCOUNT" --public-key-material fileb://~/.ssh/id_rsa.pub 

CLI 버전이 다를 경우에 base64 에러가 발생했다.
해결 구글링 링크
Invalid base64 error when calling aws ec2 import-key-pair using AWS CLI version 2 #48

kubectl 설치

curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.24.9/2023-01-11/bin/linux/amd64/kubectl

kubectl 실행 권한 부여

chmod +x ./kubectl

바이너리 복사

mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin

kubectl 설치 확인

kubectl

eksctl 설치

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp

eksctl 명령어 등록

sudo mv /tmp/eksctl /usr/local/bin

eksctl 설치 확인

eksctl

Cloud9 IAM 설정

역할 생성

AWS 서비스의 EC2 사용사례로 역할을 만들어준다.

정책 생성

정책에 AdministratorAccess 를 설정해 루트 정책을 만들어 역할에 부여한다.

역할 이름

eks-admin-userName 형식으로 이름을 설정하고 생성한다.

EC2 적용

Cloud9이 실행중인 EC2를 선택해 작업->보안-> IAM 역할 수정에 들어가 우리가 만든 역할을 지정해준다.

Cloud9 접속

클라우드9에 접속해 AWS 기존 자격 증명을 수정한다.

자격증명 파일 제거

rm -vf ${HOME}/.aws/credentials

리전 세팅

aws configure set default.region $AWSREGION 

aws configure get default.region

역할 확인

aws iam get-instance-profile --instance-profile-name eks-admin-$ACCOUNT --query "InstanceProfile.Roles[0].RoleName" --output text

결과 확인

aws sts get-caller-identity
profile
최고의 오늘을 꿈꾸는 개발자

0개의 댓글