Kubectl 설치
먼저 EC2에 로그인 해줍니다.
Amazon S3에서 클러스터의 Kubernetes 버전에 대한 kubectl 바이너리를 다운로드 합니다.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.30.0/2024-05-12/bin/darwin/amd64/kubectl
바이너리에 실행 권한을 적용합니다.
chmod +x ./kubectl
kubectl을 'usr/local/bin' 디렉토리에 이동
sudo mv ./kubectl /usr/local/bin/kubectl
설치 확인
kubectl version --client
실습 환경 구축
sudo yum install -y jq
jq는 JSON 데이터를 처리하고 변환하기 위한 커맨드라인 유틸리티입니다.
sudo yum install -y bash-completion
Bash 쉘에서 kubectl completion script는 kubectl completion bash 명령어를 통해 생성할 수 있습니다.
쉘에 completion script를 소싱하면 kubectl 명령어의 자동 완성을 가능하게 만들 수 있습니다.
하지만 이런 completion script는 bash-completion에 의존하기 때문에
위의 명령어를 통해, bash-completion 을 설치해야 합니다.
EC2 aws cli 추가 세팅
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
export AWS_REGION=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')
echo "export AWS_REGION=${AWS_REGION}" | tee -a ~/.bash_profile
aws configure set default.region ${AWS_REGION}
인스턴스 메타데이터 서비스를 사용하여 현재 인스턴스의 지역을 자동을 설정합니다.
현재 EC2의 리전을 기본 값으로 설정해 줍니다.
aws configure get default.region
설정한 리전 값을 확인할 수 있습니다.
export ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)
echo "export ACCOUNT_ID=${ACCOUNT_ID}" | tee -a ~/.bash_profile
현재 EC2에 접속한 계정 ID를 환경변수로 등록합니다.
wget https://gist.githubusercontent.com/joozero/b48ee68e2174a4f1ead93aaf2b582090/raw/2dda79390a10328df66e5f6162846017c682bef5/resize.sh
sh resize.sh
df -h
도커 이미지를 빌드하는 동안, EC2 환경에서 용량 부족 이슈가 발생할 수 있어서,
디스크 사이즈를 증설하는 쉘 스크립트를 실행하고,
파일 시스템에 늘어난 볼륨 크기가 반영되었는지 확인할 수 있습니다.
아래의 결과는 제가 실행 시킨 후 결과 입니다.
EC2 IAM 권한 설정하기
역할 생성 버튼을 눌러 줍니다.
AWS 서비스 클릭 서비스 또는 사용 사례는 EC2 클릭해줍니다.
권한 정책에서 AdministratorAccess 를 선택해줍니다.
역할 이름을 설정해 줍니다.
EC2 -> 인스턴스 선택 -> 작업 -> 보안 -> IAM 역할 수정에서 아까 만든
mission-admin-role을 할당해 줍니다.
eksctl 설치
1. yum을 업데이트 합니다.
sudo yum update -y
2. aws cli version 확인
aws --version
3. curl 명령어로 eksctl 설치 파일 다운로드 및 압축 해제
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
4. sudo 명령어로 eksctl 파일을 시스템 PATH가 설정된 디렉토리로 이동
sudo mv /tmp/eksctl /usr/local/bin
5. eksctl 설치 확인
eksctl version
WorkerNode용 Key 생성
1. region을 설정해주고, ssh-key를 생성해 줍니다.
aws configure set region ap-northeast-2 //region 설정
cd .ssh//.ssh 폴더로 이동
ssh-keygen//키 생성
모두 enter
2. 생성된 공개키를 사용중인 EC2 리전으로 업로드 합니다.
key-name은 workernode-key로 합니다.
aws ec2 import-key-pair --key-name "workernode-key" --public-key-material fileb://~/.ssh/id_rsa.pub
3. 만약 aws configure을 설정하지 않으신 분은
Unable to locate credentials. You can configure credentials by running "aws configure".
이런 오류가 발생할 겁니다.
당황하지 말고, 본인이 사용하는 IAM 계정으로 들어가서
해당 IAM을 클릭한 후, 액세스 키 만들기를 해서 Access Key ID와 Secret Access Key를 메모장에 잘 적어두고,
아래의 순서대로 진행하시면 됩니다.
aws configure
AWS Access Key ID [None]: YOUR_ACCESS_KEY_ID
AWS Secret Access Key [None]: YOUR_SECRET_ACCESS_KEY
Default region name [None]: ap-northeast-2
Default output format [None]: json
4. EC2 -> 키페어에 들어가서 성공적으로 업로드 된 모습을 확인할 수 있습니다.
후.. 초기 세팅 하는데도 생각보다 시간이 오래걸리네요.
다음 포스팅은 도커 컨테이너 이미지를 만들어서
Amazon ECR에 이미지 올리는
포스팅이 될 것 같습니다.
'개발 > AWS' 카테고리의 다른 글
[AWS] AWS RDS 사용해보기! (0) | 2024.07.13 |
---|---|
[AWS] React로 ChatGPT API와 Prompt Engineering을 활용한 챗봇 서비스 구축 [feat. API Gateway, Lambda] (0) | 2024.07.09 |
[AWS] Face Rekognition:search_faces_by_image 를 활용해서 출석부 활용하기 (0) | 2024.07.05 |
[AWS] Github Actions S3와 github repository 연결하기 [Ver 2] (0) | 2024.07.04 |
[AWS] Cloudwatch 콘솔에서 Lambda 함수 로그 그룹이 존재하지 않는다 오류 해결법 (0) | 2024.07.03 |