2. 데브시스터즈 이야기
• 데브시스터즈에서 출시한 게임은 콘텐츠
는 물론, 기술적으로 좋은 레퍼런스가 되
고 있습니다.
• 그러나 기술에 매우 도전적인 자세로 임
했던 데브시스터즈 조차도 한 가지 풀기
쉽지 않은 숙제가 있었습니다.
3. DEVSISTERS와 Windows K8s
• DEVSISTERS에서는 게임 서버 개발과 테스트 자동화를 위하여
Kubernetes를 성공적으로 도입했습니다.
• https://www.slideshare.net/seungyongoh3/ndc17-kubernetes
• 하지만 Kubernetes의 Windows OS 지원은 1.5 버전이 되어서야 겨
우 시작되었습니다.
• 2017년 말부터 Kuberntes 클러스터에 Windows Node 지원을 추가
하기 위한 R&D를 시작했습니다.
4. DEVSISTERS와 Windows K8s (Cont.)
• 2017년 하반기부터 시작된 여정을 2019년 2월에야 끝맺었습니
다.
• https://github.com/kubernetes/kubernetes/issues/65163
• https://github.com/kubernetes/kubernetes/issues/66947
• 위의 이슈들을 해결할 수 있도록 도와주신 모든 분들께 다시 한
번 감사드립니다.
5. 구축 목표, 과정, 성과
구축 목표
• Windows와 Linux Pod
동시 사용
• 동일 서브넷에서 서로
다른 노드 OS 구동
구축 과정 및 성과
• 2018년 여름에
한시적으로 하이브리드
클러스터 운영
• 그 과정에서 발견된
2개의 이슈를 Windows
SIG 팀과 협업하여 해결
• 구축 및 운영 노하우
획득
구축 결과
• KOPS 클러스터에
Windows 노드 추가
• Windows Server 2019
대상
• MS SDN 스크립트로부
터 설치 자동화를 위한
자체 Tool 개발
6. KOPS Cluster + Windows
Node Example
• IIS Pod
• NGINX Ingress Controller
• Kubernetes 1.10.3 Cluster
8. 왜 Container
를 사용하는
가 (Cont.)
커널 네임스페이스를
이용한 분리 실행 환경
제공
VM에 비해 훨씬 적은
오버헤드로 유사한 효과
제공
OS를 서버 배포를 위해서
변경하지 않음
컨테이너 내 문제 발생 시
컨테이너를 쉽게 리셋 가능
한 컴퓨터로 많은 수의
서버를 효율적으로 호스팅
이미지의 내용은 항상
고정되고, 증적으로 관리됨
증적분의 이미지를 다른
사람과 공유하여 재사용
가능
10. Kubernetes의
주요 기능
Pod을 통한 컨테이너 그룹 형성
자가 복구 (Self Healing)
자동 스케일링 (Auto Scaling)
DNS 관리 (Service Discovery)
부하 분산 (Load Balancing)
롤링 업데이트/롤백
리소스 모니터링/로깅
12. Windows
Kubernetes
앞의 설명은 Linux Kubernetes 위주의 내용
Windows 기반으로 만든 서버에는 적용할 수 없
을까?
그래서 Windows Container와 Windows
Kubernetes 개발이 2016년부터 시작
2019년 봄에 그 결실을 맺어 General Available로
출시
13. Windows
Kubernetes
Kubernetes 1.14 버전부터 정식 지원
Windows Server 2019 필요
가장 쉬운 방법은 Azure에서 제공하는 AKS를 사
용하는 것
최근에 Windows Container 지원 프리뷰가 발표
되어 사용해볼 수 있음 (별도 신청/승인 필요)
14. AKS에 대하여
Azure Kubernetes Service, 줄여서 AKS
Kubernetes 클러스터를 만들고 유지관리하는 것
은 Microsoft가 담당
Application을 Node에 올리고 배치하는 것은 사
용자 측에서 자유롭게 구성할 수 있음
AKS의 장점을 가져와서 커스터마이징할 수 있는
방안을 제공하는 AKS Engine이라는 프로젝트도
있음
Kubernetes가 무엇인지 체험하기 간편함
15. AKS Engine
Microsoft가 제공하는 Azure Kubernetes Service
를 실제로 만들기 위해 사용하는 핵심 도구
Azure CLI를 이용하여 AKS를 만드는 것과 동일
한 기능을 제공
과금의 경우 마스터 컨트롤러 비용까지 같이 청
구됨
다만 실제 AKS 서비스에 도입되기 전의 시나리오
를 먼저 테스트 가능
AKS Engine은 오픈소스
https://github.com/azure/aks-engine
16. AKS Engine의
동작 방식
API Model Template
AKS Engine용
Template을 GitHub
에서 다운로드
Fill Out Params
Template의
Placeholder를 실제
값으로 교체
ARM Template
AKS Engine이 ARM
Template을 생성
Deploy
Azure CLI를 이용하
여 ARM Template을
배포
Kubernetes
Cluster
새로운 Kubernetes
Cluster 준비됨
17. 시작하기 전
준비할 것
Azure 계정 및 구독
Azure CLI
AKS Engine
Kubernetes CLI
27. 마무리
이제 컨테이너와 K8s 모두 Windows를 OS로 사
용할 수 있습니다.
컨테이너로 기존 서버 애플리케이션을 변환할 수
있으면 관리가 한층 더 쉬워집니다.
K8s 위에 올릴 수 있으면 항상 안정적으로 동작
하는 서버 애플리케이션을 만들 수 있습니다.
이제 Windows와 Linux 서버를 같이 쓸 수 있습
니다.