Notice
Recent Posts
Recent Comments
Today
Total
05-02 00:04
Archives
관리 메뉴

Jeongchul Kim

AWS Cloud9을 활용한 Kubernetes 개발 환경 구축 본문

카테고리 없음

AWS Cloud9을 활용한 Kubernetes 개발 환경 구축

김 정출 2023. 5. 19. 17:27

AWS Cloud9을 활용한 Kubernetes 개발 환경 구축

 

Kubectl 설치

AWS EKS 접속 및 개발을 위한 kubectl 바이너리를 다운받습니다. Kubernetes 바이너리 버전은 최신 1.27.2 로 설치합니다.

cd ~/download

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

chmod +x ./kubectl

sudo mv ./kubectl /usr/local/bin/kubectl

source <(kubectl completion bash)

echo "source <(kubectl completion bash)" >> ~/.bashrc

kubectl version --short --client

 

 

k9s 설치

 

설치 명령어는 다음과 같습니다.

curl -sS https://webinstall.dev/k9s | bash

 

 

k9s를 실행하면 아직 node와 pod의 상태를 확인할 수 없습니다.

k9s

 

Cloud9을 위한 인증/자격증명 및 환경 구성

1. IAM 콘솔에서 사이드 메뉴의 Roles -  Create role 버튼을 클릭합니다.

 

2. AWS Service를 선택하고 EC2 라디오 버튼을 클릭하고 Next 버튼을 클릭합니다.

3. AdministratorAcess 체크 박스를 선택하고 Next 버튼을 클릭합니다.

4. Role name을 입력하고 Create role버튼을 클릭합니다.

 

5. Cloud9으로 돌아와 상단 좌측 아이콘을 클릭하고 Manage EC2 Instance 버튼을 클릭합니다.

 

6. EC2 콘솔로 이동됩니다. Cloud9 EC2 Instance 체크박스를 선택하고 상단의 Actions 버튼에서 Security > Modify IAM role 버튼을 클릭합니다.

7. IAM role 드롭다운 메뉴에서 위에서 생성한 role을 선택하고 Update IAM role 버튼을 클릭합니다.

8. Cloud9으로 돌아와 기존 자격증명과 임시 자격 증명을 비활성화합니다.

상단 좌측 settings 아이콘을 클릭하고 사이드 메뉴에서 AWS SETTINGS을 클릭하고

Credentials에서 AWS managed temporary credentials 체크를 해제합니다.

 

9. 기존 자격 증명 파일을 제거합니다.

rm -vf ~/.aws/credentials

10. Cloud9이 위에서 생성한 role을 IAM role로 사용하고 있는지 확인합니다. Arn에서 role 이름을 확인합니다.

aws sts get-caller-identity --region ap-northeast-2

 

10. jq를 설치합니다.

sudo yum -y install jq

 

AWS configure 설정

1.  Account , Region 정보를 AWS Cli로 추출합니다.

export ACCOUNT_ID=$(aws sts get-caller-identity --region ap-northeast-2 --output text --query Account)

export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')

echo $ACCOUNT_ID

echo $AWS_REGION

2. bash_profile에 Account 정보, Region 정보를 저장합니다.

echo "export ACCOUNT_ID=${ACCOUNT_ID}" | tee -a ~/.bash_profile

echo "export AWS_REGION=${AWS_REGION}" | tee -a ~/.bash_profile

aws configure set default.region ${AWS_REGION}

aws configure --profile default list

 

SSH Key 생성

Cloud9에서 ssh key를 생성합니다. 해당 키로 EKS Worker node에 사용합니다.

key 이름은 eks-jckim으로 하겠습니다.

passphrase는 빈 문자열 enter로 넣습니다.

cd ~/environment/

ssh-keygen

Worker node나 EC2에 접속하기 위해 pem key의 권한을 설정합니다.

mv eks-jckim eks-jckim.pem

chmod 400 eks-jckim.pem

ssh key를 region으로 전송합니다.

aws ec2 import-key-pair --key-name "eks-jckim" --public-key-material fileb://./eks-jckim.pub --region ap-northeast-2

 

AWS KMS의 Customer Management Key(CMK) 생성

AWS Key Management Service(KMS)를 사용하면 암호화 키를 생성, 관리하고 다양한 AWS 서비스 애플리케이션에서 사용을 제어할 수 있습니다. 

KMS를 생성합니다.

aws kms create-alias --alias-name alias/eks-jckim --target-key-id $(aws kms create-key --query KeyMetadata.Arn --output text)

환경변수에 저장합니다.

export MASTER_ARN=$(aws kms describe-key --key-id alias/eks-jckim --query KeyMetadata.Arn --output text)

echo "export MASTER_ARN=${MASTER_ARN}" | tee -a ~/.bash_profile

echo $MASTER_ARN

 

KMS 콘솔로 이동하여 Customer managed keys로 이동하면 생성된 Key를 확인할 수 있습니다.

 

이상입니다. 다음 포스트에서는 VPC를 구성하고 EKS 클러스터 생성을 진행하겠습니다.

감사합니다.

Comments