brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Oct 09. 2021

1-3.Amazon EKS 구축과 게임 컨테이너 올리기

<1>  Amazon EKS 구축

<2> 게임 컨테이너 올리기

<3>  GSLB에서 dns 매칭하기

<4>  ops-view 설치해 구성 보기 (옵션)

<5> Node 수를 늘려보자~

<6> Pod를 늘려보자~

<7> 추가 테스트

<8> 삭제

<10> 전체 프로젝트 보기

<20>  Amazon EKS 배워보기 



<1>  Amazon EKS 구축


1

https://brunch.co.kr/@topasvga/1815


2

https://brunch.co.kr/@topasvga/1876




<2> 게임 컨테이너 올리기


1

clb에  Pod (컨테이너1개) 생성해 외부 노출하기

디플로이먼트를 만들고, LB를 생성하는 작업 2가지를 해야 한다.

그러면 , LB 가 생긴다.


https://brunch.co.kr/@topasvga/1868


2

확인


LoadBalancer가 위처럼 생성되었다면  웹브라우저에서 접속해보자.

af39999999999999999999999

방향키를 움직여 게임을 해보자




<3>  GSLB에서 dns 매칭하기


1

Route53에서 매칭하기?


www.bestgame10.com  을 cname으로 LoadBalancer로 변경하자

변경전

www.bestgame10.com 100.1.1.1


변경후

www.bestgame10.com  cname afxxxxxxxxxxxxxxxxxxx.elb.amazonaws.com



3

http://www.bestgame10.com 

으로 접속해보자~



<4>  ops-view 설치해 구성 보기 (옵션)


1

https://brunch.co.kr/@topasvga/1867


2

웹브라우저로 접속해 확인


3

명령어로 확인

pod 2개가 각각 다른 node에 떠 있다 ~~

watch -d kubectl get pod,rs,svc,ds,nodes -owide




<5> Node 수를 늘려보자~


1

Node 를 늘려보자~

변경전 

node 2


변경후 

node 4


2

work node 수  늘리기


오토스케일링 그룹 이름을 알아야 한다


aws autoscaling describe-auto-scaling-groups --query "AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') && Value=='myeks']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]" --output table


echo ${ASG_NAME}


ASG_NAME=eks-ng-a8d19dc2-20be0-0c6b-1d16-a9e16995bda2

echo ${ASG_NAME}



aws autoscaling describe-auto-scaling-groups --query "AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') && Value=='myeks']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]" --output table


aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 2 --desired-capacity 2 --max-size 6


aws autoscaling describe-auto-scaling-groups --query "AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') && Value=='myeks']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]" --output table





https://brunch.co.kr/@topasvga/1888




<6> Pod를 늘려보자~


1

kubectl scale deployment deployment-2048  --replicas=10

kubectl scale deployment deployment-2048  --replicas=20

kubectl scale deployment deployment-2048  --replicas=100



2

앗! node 수가 부족하다~

node 서버의 사양에 따라  넣을수 있는 Pod 수가 제한된다.


Node 수를  8개로 늘리자~ (2분 정도 기다린다~)


aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 2 --desired-capacity 8 --max-size 10


k get nodes


aws autoscaling describe-auto-scaling-groups --query "AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') && Value=='myeks']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]" --output table



3

pod를 다시 2개로

kubectl scale deployment deployment-2048  --replicas=2


4

node를  다시 2개로

aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 2 --desired-capacity 2 --max-size 6





<7> 추가 테스트


위 내용은 CLB(클래식 로드밸런서)를 이용한 구축이다.

IP 타입의 NLB 또는 IP 타입의 ALB 로 구축해보자~


https://brunch.co.kr/@topasvga/1868


https://brunch.co.kr/@topasvga/1869




<8> 삭제


1

eks 모니터링을  eksmon 으로 cname 으로 지정해서 사용해보자~

http://eksmon.bestgame10.com/


k8smon은 온프라미스 모니터링이 되겠죠

aksmon은 azure 모니터링 ^^


2

pod를 지워도  deployment로 배포되어 pod가 다시 살아 난다.

deployment와 service를 지워야 한다. ~


3

 k delete deploy --all

k delete service --all

ops-view도 같이 삭제되니 참고~



<10> 전체 프로젝트 보기


https://brunch.co.kr/@topasvga/1927



<20>  Amazon EKS 배워보기 


(몰아보기) Amazon EKS 실습 

https://brunch.co.kr/@topasvga/1816


감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari