brunch

108. 네이버 쿠버네티스 서비스 장애 시 8/10

by Master Seo

네이버 Kubernetes Service로 게임 서비스 운영 중

네이버 Global DNS 서비스로 DNS 서비스 운영 중


네이버 Kubernetes Service 장애 시 어떻게 대응할 수 있을까?



<1> 현황 - 네이버 Kubernetes Service 운영 현황

<2> 현황 - 네이버 Global DNS 운영 현황

<3> 개선 방향 - 네이버 쿠버 네티스 서비스 장애 시 대처법?

<4> 개선 방향 - 네이버 클라우드 전체 서비스 장애 시?

<5> 참고 자료



<1> 현황 - 네이버 Kubernetes Service 운영 현황


네이버 쿠버네티스 서비스 운영 중


설치 시 가용 Zone 은 1개 선택이 가능하다.

데이터 센터 1곳을 선택해 사용해야 한다는 뜻이다.


[root@test11 ~]# k get nodes

NAME STATUS ROLES AGE VERSION

game 1-node-pool-w-1104 Ready <none> 45h v1.20.13

game 1-node-pool-w-1105 Ready <none> 45h v1.20.13

game 1-node-pool-w-1106 Ready <none> 45h v1.20.13

game 1-node-pool-w-1107 Ready <none> 45h v1.20.13

game 1-node-pool-w-1108 Ready <none> 45h v1.20.13


[root@test11 ~]# k get ns

NAME STATUS AGE

default Active 46h

kube-node-lease Active 46h

kube-public Active 46h

kube-system Active 46h



[root@test11 ~]# k get pods

NAME READY STATUS RESTARTS AGE

deployment-2048-79785 cfdff-7 jnb2 1/1 Running 0 22h

deployment-2048-79785 cfdff-8 lprm 1/1 Running 0 22h

tetris-78 b8 bb6 fcb-9 zsvq 1/1 Running 0 22h



[root@test11 ~]# k get deploy, svc, pod

NAME READY UP-TO-DATE AVAILABLE AGE

deployment.apps/deployment-2048 2/2 2 2 22h

deployment.apps/tetris 1/1 1 1 22h


NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

service/deployment-2048 LoadBalancer 198.19.247.14 default-deployment-2048-c0 d64-10251612-73 e795 b0 c6 f7. kr. lb. naver ncp.com 80:30359/TCP 22h

service/kubernetes ClusterIP 198.19.128.1 <none> 443/TCP 46h

service/tetris LoadBalancer 198.19.157.108 default-tetris-075d3-10251611-43faf1d23789.kr.lb.naverncp.com 80:30714/TCP 22h


NAME READY STATUS RESTARTS AGE

pod/deployment-2048-79785 cfdff-7 jnb2 1/1 Running 0 22h

pod/deployment-2048-79785 cfdff-8 lprm 1/1 Running 0 22h

pod/tetris-78 b8 bb6 fcb-9 zsvq 1/1 Running 0 22h





<2> 현황 - 네이버 Global DNS 운영 현황


1

DNS 설정

bestgame10.com


Cname으로 위임




2

테트리스

http://1.bestgame10.com/


2048 게임

http://2.bestgame10.com/





<3> 개선 방향 - 네이버 쿠버 네티스 서비스 장애 시 대처법?



1

KR-1 AZ의 쿠버네티스 서비스 장애인경우 ?

KR-2 AZ에 서브넷을 만들고 컨테이너 서비스를 KR-2 AZ로 빠르게 이전한다.

10 kr2.png


2

이전 작업

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


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





2

전체 서비스 장애일 경우 장기적으로 서비스가 안되는 경우 ?

온 프레미스로 이전한다?

다른 CSP (AWS , GCP , AZURE)의 쿠버 네티스 서비스로 이전한다.?



여기서는 aws로 이전는 경우를 설명 한다.


3

실습 4-1. Amazon EKS 클러스터 생성

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


4

참고

AWS EKS는 AZ 여러 곳에 구축 가능하다.

Naver 쿠버네티스 서비스는 AZ 1곳에만 구축 가능하다.





4

서비스 올린다.


5

네이버 Global DNS에서 AWK EKS로 CNAME 변경한다.

1.bestgame10.com CNAME을 AWS EKS로 변경



6

서비스 정상 확인한다.





<4> 개선 방향 - 네이버 클라우드 전체 서비스 장애 시?


1

실습 4-1. Amazon EKS 클러스터 생성

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



2

서비스 올리기


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


(topas111@myeks:default) [root@myeks-host ~]# kubectl get deploy,svc tetris

NAME READY UP-TO-DATE AVAILABLE AGE

deployment.apps/tetris 1/1 1 1 54s

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

service/tetris LoadBalancer 10.100.238.143 a2651705b8a6f419d8f849de20d6a2ff-1409735461.ap-northeast-2.elb.amazonaws.com 80:30104/TCP 50s




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



3

네이버 Global DNS 도 안 될 경우?

이 경우는 1일 소요되므로 최악의 경우에만 이전한다.

네이버 Global DNS 설정이 백업받고 있어야 한다.

도메인 자체를 AWS Route53로 이전 하기

AWS Route53에서 bestgame10.com 생성

도메인 등록 대행 기관에서 네임서버 변경 하기 (aws 네임서버로 정보 변경 - 1일 소요됨)

1.bestgame10.com 의 CNAME을 AWS LB로 변경한다.



4

네이버 서비스 뿐만 아니라 다른 CSP의 클라우드 서비스가 장애 나는경우

타 CSP에 쿠버네티스를 구축해 서비스를 이전해 올수도 있다.

컨테이너 환경이면 서비스 이전이 좀 자유로워 집니다!



<5> 참고 자료


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


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


쿠버네티스 gslb.jfif

감사합니다.

keyword
매거진의 이전글107.네이버 쿠버네티스 서비스에 테트리스 7/10