실습 1탄 = 1/7
시간 절약하기 위해 이론을 보고 난 후 실습하자.
이론 내용을 실습1 전체를 한번 쭉 본다. = 어떤 내용을 얼마나 공부해야 하는지 알수 있다.
두 번째 보며 이해한다. = 내용을 이해 한다.
몰아서 한번 실습한다. = 실습 비용이 나오므로 몰아서 하는 것을 추천한다.
AWS EKS 설치를 위한 aws cloud9 환경 설정법을 알아보자.
(선택) 일반 EC2에서도 툴을 설치해 EKS 클러스터 생성환경을 구축할 수 있다.
구성 1
개발자 -------cloud9 (도커설치, 도커 파일)----------(올리기)------ECR
구성 2
개발자 -------cloud9 (도커설치, 도커 파일)----------(올리기)--------Git------(올리기)--------ECR---EKS
명령 서버 Cloud9를 1대 생성하자.
해당 서버에 Admin-role을 부여하여 EKS 클러스터를 만들자.
Cloud9에서 기존 크래디셔널은 제거해야 한다.
Cloud9를 편의상 Public Subnet에 생성한다.
eksctl을 설치해 클러스터를 생성한다.
kubectl을 설치해 pod 등을 생성한다.
명령서버를 만들고, 명령서버에 EKS 생성권한을 주자.
role을 만들어 명령서버에 권한을 주는 방법이 있다.
또는 access-key와 Secret-key를 생성해 해당 권한을 사용하는 방법이 있다.
여기서는 role을 만들어 명령서버에 권한을 주는 방법을 사용해 보자.
1
AWS 콘솔 로그인
https://console.aws.amazon.com/console/home
리전은 서울리전으로 하자.
또는 us-west-2 오래곤으로 함
2
role 생성
iam > create role > AWS 서비스 > EC2 > AdministratorAccess > 다음 > 역할 이름
eks-admin
3
Cloud9 만들어 보자!!
Cloud9 연결
seo-mariogame-dev-c9
// seo사용자의 마리오게임 개발 cloud9
t3.medium (변경) = Cloud9에서 테스트시 사양이 좋아야 빠름
아마존 리눅스 2 (디폴트)
AWS System Manager로 생성 (디폴트)
생성
public subnet에 설치
4
웹콘솔
EC2에 eks-admin role 부여
aws-cloud9-seo-mariogame-dev
EC2 > 오른마우스 보안 > iam 역할수정 > eks-admin > iam 역할 업데이트
5
Cloud9 실행.
콘솔 > 오른쪽 위 톱니모양 > AWS Settings > Credentials > AWS managed temporary credentials 비활성화로 변경
// 기존 권한을 제거하고 새로 부여한 role권한을 사용하도록 한다.
6
현재 자격증명 확인하자.
role을 사용하는가?
aws sts get-caller-identity --query Arn | grep eks-admin
assumed-role/eks-admin/i-00fec51ff756
7
기존 자격증명도 제거 (선택) - 위에 자격 증명 변경이 안되었을 경우 실행
rm -vf ${HOME}/.aws/credentials
1
한 번에 설치하자
#!/bin/bash
hostnamectl --static set-hostname eksctl-host
sudo su -
# Install tools
yum -y install git tree tmux jq lynx htop
# Install aws cli v2
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
export PATH=/usr/local/bin:$PATH
source ~/.bash_profile
complete -C '/usr/local/bin/aws_completer' aws
# Install eksctl
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
mv /tmp/eksctl /usr/local/bin
eksctl version
# Install kubectl v1.25
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.25.7/2023-03-17/bin/linux/amd64/kubectl
install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# Source bash-completion for kubectl
source <(kubectl completion bash)
echo 'source <(kubectl completion bash)' >>~/.bashrc
echo 'alias k=kubectl' >> ~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
# Install kubens kubectx
git clone https://github.com/ahmetb/kubectx /opt/kubectx
ln -s /opt/kubectx/kubens /usr/local/bin/kubens
ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
# Config convenience
echo 'alias vi=vim' >> /etc/profile
echo "sudo su -" >> /home/ec2-user/.bashrc
# Change localtime
sed -i "s/UTC/Asia\/Seoul/g" /etc/sysconfig/clock
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
# bash
sudo yum install -y bash-completion
또는
아래 내용은 하나씩 설치하는 법
1.
sudo pip install --upgrade awscli
aws --version
2
sudo curl -o /usr/local/bin/kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/kubectl
sudo chmod +x /usr/local/bin/kubectl
kubectl version --client=true --short=true
3
jq 설치
json형식을 다루는 util
sudo yum install -y jq
4
bash관련 유틸 설치
sudo yum install -y bash-completion
5
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv -v /tmp/eksctl /usr/local/bin
eksctl version
참고
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/eksctl.html
6
동작 확인
s3 버킷 만들어보기~ (권한 테스트) (선택)
aws s3 mb s3://sdadad2121
make_bucket: sdadad2121
aws s3 ls |grep sda*
2021-06-17 12:55:27 sdadad2121
s3 삭제하기
aws s3 rm s3://sdadad2121
7
기타 리전등 변수로 등록하기 = 추후 작업을 쉽게 하기 위해
현재 리전을 디폴트로 설정
// IDMS 가 디폴트로 disable 되면서 조회 안됨.
export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')
// Console 화면 오른쪽에서 Account id 확인
export ACCOUNT_ID=476286675138
echo "export ACCOUNT_ID=${ACCOUNT_ID}" | tee -a ~/.bash_profile
export AWS_REGION=ap-northeast-2
echo "export AWS_REGION=${AWS_REGION}" | tee -a ~/.bash_profile
aws configure set default.region ${AWS_REGION}
aws configure get default.region
echo ${AWS_REGION}
// 리전 정보 확인
8
리전 변경 필요시
export AWS_REGION=us-west-1
export AWS_REGION=us-west-2
US West (N. California)us-west-1
US West (Oregon)us-west-2
10
aws configure로 환경 설정 (선택)
aws configure
access-key나 secret key가 없어도 된다.
이미 ec2에 admin role이 부여되어 있기 때문이다.
AWS clolud9를 사용하기 싫다면 , 그냥 만든 EC2에서 사용하자.
동일하게 Role을 만들어, EC2에 부여하고 사용하면 된다.
설정법은 Cloud9 과 동일하다.
1
role생성
IAM > role > eks-admin-role admin권한
2
EC2 생성?
아마존 리눅스로 설치한다. 기본 AWS 유틸이 설치되어 있다.
Auto-assign Public iP Enable
IAM role = 1번에서 생성한 role을 지정한다.
3
EC2 로그인?
sudo su -
유틸 설치
or
하나씩 설치해 보기
4
# tree 보는 유틸, json지원 유틸 등
yum -y install tree tmux jq
kops로 쿠버네티스 설치하는 경우 필요한 유틸
curl -Lo kops https://github.com/kubernetes/kops/releases/download/v1.20.0/kops-linux-amd64
chmod +x kops
mv kops /usr/local/bin/kops
kops version
Version 1.20.0
다음 컨테이너 이미지 연습해 보자
https://brunch.co.kr/@topasvga/1651
https://brunch.co.kr/@topasvga/1883
https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/ko-KR
https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/en-US
https://brunch.co.kr/@topasvga/1679
감사합니다.