brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Oct 10. 2021

1-4. GSLB로 트래픽 조절하기

<1> Amazon  route53 사용하기

<2> Amazon  route53   Weighted  트래픽 조절 테스트하기

<3> Amazon  route53   Weighted  Fail over 테스트하기

<4> pod 수 늘리기 등

<5>  route53 참고 자료

<10> (프로젝트) 멀티 클라우드로 게임 서비스 운영하기

<20> (몰아보기) 실습 1- 쿠버네티스



<1> Amazon  route53   Weighted  설정하기


1

헬스체크 만들기 

1개 다운 시 다른 쪽으로 넘어가게 하기


route53 > health check > create health check >   k8s-serverchk.com

k8s health check  = k8s-www.bestgame10.com

eks-health check  = eks-www.bestgame10.com


2

LB  도메인 이름을 모니터링하도록 설정한다.


3

Route53 > Hosted zones > bestgame10.com >  Create record 

www   

cname

service/my-service  lb external-ip 지정

weighted  150

k8s-www.bestgame10.com

k8s-www


4

watch -d kubectl get pod,svc,deploy,nodes


service/my-service    EXTERNAL-IP  로 지정하기

eks-www.bestgame10.com

weighted  10

amazon eks-www




<2> Amazon  route53   Weighted  트래픽 조절 테스트하기


ec2에서 테스트하기 


디플로이 먼트 배포


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



k8s  master에서

watch -d kubectl get po,deploy,svc,ep,svc,rs,nodes


eks 

watch -d kubectl get po,deploy,svc,ep,svc,rs,nodes



2

Pod 1대로 줄이기 

kubectl scale deployment deploy-echo  --replicas=1


kubectl get pods

NAME                            READY   STATUS    RESTARTS   AGE

deploy-echo-56f947c867-vzcdz    1/1     Running   0          89m


3

각  LB IP로 질의해본다.

모두 1대 Pod에서 응답 준다.


k get svc


EXIP1=aa8d22769b90d49be9f1346843bbab0b-923570864.ap-northeast-1.elb.amazonaws.com

echo $EXIP1


EXIP2=ada2f74f33466455299ae9c3b35bf433-7c15b6c3fe631bb2.elb.ap-southeast-1.amazonaws.com

echo $EXIP2


for i in {1..100}; do curl -s $EXIP1 | grep Hostname ; done | sort | uniq -c | sort -nr

    100 Hostname: deploy-echo-56f947c867-vzcdz


for i in {1..100}; do curl -s $EXIP2 | grep Hostname ; done | sort | uniq -c | sort -nr

    100 Hostname: deploy-echo-56f947c867-9zmhx


4

watch -d kubectl get po,svc


DOMAIN=www.bestgame10.com

echo $DOMAIN

for i in {1..100}; do curl -s $DOMAIN | grep Hostname ; done | sort | uniq -c | sort -nr

100 Hostname: deploy-echo-56f947c867-vzcdz


5

1초 주기 단위로 보임 

DOMAIN=www.bestgame10.com

echo $DOMAIN


curl -s --connect-timeout 1 $DOMAIN


(수정 필요)

while true; do curl -s --connect-timeout 1 $DOMAIN  | egrep '(Hostname|nginx|client_address)'; echo "--------------" ; date "+%Y-%m-%d %H:%M:%S" ; sleep 1; done


6

3초마다 도메인 질의

watch -n 3 -d 'dig www.bestgame10.com +short '



<3> Amazon  route53   Weighted  Fail over 테스트하기




<4> pod 수 늘리기 


1

pod 수 늘리기 


eks

kubectl scale deployment deploy-echo --replicas=5


kubectl scale deployment deploy-echo --replicas=5





<5>  route53 참고 자료


1

route53

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


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



2

route53 > cname으로 ops-view lb를 지정한다.

k8s-mon

eks-mon


http://k8s-mon.bestgame10.com/

http://eks-mon.bestgame10.com/




<10> (프로젝트) 멀티 클라우드로 게임 서비스 운영하기


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




<20> (몰아보기) 실습1- 쿠버네티스


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




감사합니다.





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