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 설치
- k9s는 Kubernetes 클러스터의 직관적인 UI를 보여줍니다.
- https://github.com/derailed/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 클러스터 생성을 진행하겠습니다.
감사합니다.
'AWS' 카테고리의 다른 글
AWS EKS 클러스터 구축 (2) | 2023.06.15 |
---|---|
AWS Cloud9 (0) | 2023.05.19 |
Amazon SageMaker (0) | 2023.05.11 |
AWS Certified Cloud Practitioner 클라우드 자격증 AWS Well-Architected 프레임워크 (1) | 2022.06.06 |
AWS Certified Cloud Practitioner 클라우드 자격증 실전 문제를 활용한 준비-[7] (0) | 2022.02.02 |