네이버 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 설정
Cname으로 위임
2
테트리스
2048 게임
<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 클러스터 생성
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 클러스터 생성
2
서비스 올리기
(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
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/1927
감사합니다.