brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Mar 06. 2022

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

네이버 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로 빠르게 이전한다.


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


감사합니다.

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