SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Enter Windows
Kubernetes DEVSISTERS
한국 Azure 사용자 그룹
남정현
데브시스터즈 이야기
• 데브시스터즈에서 출시한 게임은 콘텐츠
는 물론, 기술적으로 좋은 레퍼런스가 되
고 있습니다.
• 그러나 기술에 매우 도전적인 자세로 임
했던 데브시스터즈 조차도 한 가지 풀기
쉽지 않은 숙제가 있었습니다.
DEVSISTERS와 Windows K8s
• DEVSISTERS에서는 게임 서버 개발과 테스트 자동화를 위하여
Kubernetes를 성공적으로 도입했습니다.
• https://www.slideshare.net/seungyongoh3/ndc17-kubernetes
• 하지만 Kubernetes의 Windows OS 지원은 1.5 버전이 되어서야 겨
우 시작되었습니다.
• 2017년 말부터 Kuberntes 클러스터에 Windows Node 지원을 추가
하기 위한 R&D를 시작했습니다.
DEVSISTERS와 Windows K8s (Cont.)
• 2017년 하반기부터 시작된 여정을 2019년 2월에야 끝맺었습니
다.
• https://github.com/kubernetes/kubernetes/issues/65163
• https://github.com/kubernetes/kubernetes/issues/66947
• 위의 이슈들을 해결할 수 있도록 도와주신 모든 분들께 다시 한
번 감사드립니다.
구축 목표, 과정, 성과
구축 목표
• Windows와 Linux Pod
동시 사용
• 동일 서브넷에서 서로
다른 노드 OS 구동
구축 과정 및 성과
• 2018년 여름에
한시적으로 하이브리드
클러스터 운영
• 그 과정에서 발견된
2개의 이슈를 Windows
SIG 팀과 협업하여 해결
• 구축 및 운영 노하우
획득
구축 결과
• KOPS 클러스터에
Windows 노드 추가
• Windows Server 2019
대상
• MS SDN 스크립트로부
터 설치 자동화를 위한
자체 Tool 개발
KOPS Cluster + Windows
Node Example
• IIS Pod
• NGINX Ingress Controller
• Kubernetes 1.10.3 Cluster
왜 Container
를 사용하는
가
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
왜 Container
를 사용하는
가 (Cont.)
커널 네임스페이스를
이용한 분리 실행 환경
제공
VM에 비해 훨씬 적은
오버헤드로 유사한 효과
제공
OS를 서버 배포를 위해서
변경하지 않음
컨테이너 내 문제 발생 시
컨테이너를 쉽게 리셋 가능
한 컴퓨터로 많은 수의
서버를 효율적으로 호스팅
이미지의 내용은 항상
고정되고, 증적으로 관리됨
증적분의 이미지를 다른
사람과 공유하여 재사용
가능
Kubernetes에
대하여
 Google이 2014년에 공개한 오픈 소스 프로젝트
 컨테이너 플랫폼
 마이크로서비스 플랫폼
 이식성 높은 클라우드 플랫폼
Kubernetes의
주요 기능
 Pod을 통한 컨테이너 그룹 형성
 자가 복구 (Self Healing)
 자동 스케일링 (Auto Scaling)
 DNS 관리 (Service Discovery)
 부하 분산 (Load Balancing)
 롤링 업데이트/롤백
 리소스 모니터링/로깅
Kubernetes의
기본 구조
https://medium.com/@abhaydiwan/kubernetes-introduction-and-twelve-key-features-cdfe8a1f2d21
Windows
Kubernetes
 앞의 설명은 Linux Kubernetes 위주의 내용
 Windows 기반으로 만든 서버에는 적용할 수 없
을까?
 그래서 Windows Container와 Windows
Kubernetes 개발이 2016년부터 시작
 2019년 봄에 그 결실을 맺어 General Available로
출시
Windows
Kubernetes
 Kubernetes 1.14 버전부터 정식 지원
 Windows Server 2019 필요
 가장 쉬운 방법은 Azure에서 제공하는 AKS를 사
용하는 것
 최근에 Windows Container 지원 프리뷰가 발표
되어 사용해볼 수 있음 (별도 신청/승인 필요)
AKS에 대하여
 Azure Kubernetes Service, 줄여서 AKS
 Kubernetes 클러스터를 만들고 유지관리하는 것
은 Microsoft가 담당
 Application을 Node에 올리고 배치하는 것은 사
용자 측에서 자유롭게 구성할 수 있음
 AKS의 장점을 가져와서 커스터마이징할 수 있는
방안을 제공하는 AKS Engine이라는 프로젝트도
있음
 Kubernetes가 무엇인지 체험하기 간편함
AKS Engine
 Microsoft가 제공하는 Azure Kubernetes Service
를 실제로 만들기 위해 사용하는 핵심 도구
 Azure CLI를 이용하여 AKS를 만드는 것과 동일
한 기능을 제공
 과금의 경우 마스터 컨트롤러 비용까지 같이 청
구됨
 다만 실제 AKS 서비스에 도입되기 전의 시나리오
를 먼저 테스트 가능
 AKS Engine은 오픈소스
 https://github.com/azure/aks-engine
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 준비됨
시작하기 전
준비할 것
 Azure 계정 및 구독
 Azure CLI
 AKS Engine
 Kubernetes CLI
윈도 컨테이너를
위한 Dockerfile
살펴보기 Demo
AKS Engine
설치하기 Demo
AKS 엔진으로
K8s 클러스터
구축하기 Demo
리눅스와 윈도
컨테이너의 연동 Demo
YAML Code
 https://gist.github.com/rkttu/e30542d75b8e48d
0cca1eec6eb0cf86b
 Hybrid Workload에서 중요한 것은 Node
Selector를 통한 적절한 노드 선택.
 Windows 노드에 Linux 컨테이너를 배정하거나,
반대의 상황이 발생하면 서비스가 시작되지 못함.
마무리
 이제 컨테이너와 K8s 모두 Windows를 OS로 사
용할 수 있습니다.
 컨테이너로 기존 서버 애플리케이션을 변환할 수
있으면 관리가 한층 더 쉬워집니다.
 K8s 위에 올릴 수 있으면 항상 안정적으로 동작
하는 서버 애플리케이션을 만들 수 있습니다.
 이제 Windows와 Linux 서버를 같이 쓸 수 있습
니다.
We’re Hiring!
careers.devsisters.com

Mais conteúdo relacionado

Mais procurados

Why container ?
Why container ?Why container ?
Why container ?관무 류
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideChan Shik Lim
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축철구 김
 
Enterprise Docker
Enterprise DockerEnterprise Docker
Enterprise DockerLee Ji Eun
 
Spring cloud on kubernetes
Spring cloud on kubernetesSpring cloud on kubernetes
Spring cloud on kubernetesSangSun Park
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User GuideSANG WON PARK
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...OpenStack Korea Community
 
Docker기반 분산 플랫폼
Docker기반 분산 플랫폼Docker기반 분산 플랫폼
Docker기반 분산 플랫폼SeongHyun Jeong
 
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on KubernetesOpenStack Korea Community
 
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례OpenStack Korea Community
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
Devfair kubernetes 101
Devfair kubernetes 101Devfair kubernetes 101
Devfair kubernetes 101Daegwon Kim
 
Mesos + Marathon + Docker
Mesos + Marathon + DockerMesos + Marathon + Docker
Mesos + Marathon + Dockerbighouse
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCPDaegeun Kim
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google KubernetesYongbok Kim
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestrationNAVER D2
 
Openstack zun,virtual kubelet
Openstack zun,virtual kubeletOpenstack zun,virtual kubelet
Openstack zun,virtual kubeletChanyeol yoon
 

Mais procurados (20)

Why container ?
Why container ?Why container ?
Why container ?
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical Guide
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
Enterprise Docker
Enterprise DockerEnterprise Docker
Enterprise Docker
 
Spring cloud on kubernetes
Spring cloud on kubernetesSpring cloud on kubernetes
Spring cloud on kubernetes
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User Guide
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
 
Docker기반 분산 플랫폼
Docker기반 분산 플랫폼Docker기반 분산 플랫폼
Docker기반 분산 플랫폼
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
 
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
 
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
Devfair kubernetes 101
Devfair kubernetes 101Devfair kubernetes 101
Devfair kubernetes 101
 
Mesos + Marathon + Docker
Mesos + Marathon + DockerMesos + Marathon + Docker
Mesos + Marathon + Docker
 
Docker Container
Docker ContainerDocker Container
Docker Container
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCP
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google Kubernetes
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestration
 
Openstack zun,virtual kubelet
Openstack zun,virtual kubeletOpenstack zun,virtual kubelet
Openstack zun,virtual kubelet
 

Semelhante a 코딩이랑 무관합니다만, 2019년 6월 발표 자료

Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ian Choi
 
Running Kubernetes in hybrid environments with AWS (EKS Distro & EKS Anywhere...
Running Kubernetes in hybrid environments with AWS (EKS Distro & EKS Anywhere...Running Kubernetes in hybrid environments with AWS (EKS Distro & EKS Anywhere...
Running Kubernetes in hybrid environments with AWS (EKS Distro & EKS Anywhere...Amazon Web Services Korea
 
AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018
AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018 AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018
AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018 Amazon Web Services Korea
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center어형 이
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon Web Services Korea
 
Bon voyage Docker_Kubernetes
Bon voyage Docker_KubernetesBon voyage Docker_Kubernetes
Bon voyage Docker_Kubernetesssuseraada82
 
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트:: AWS S...
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트::  AWS S...AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트::  AWS S...
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트:: AWS S...Amazon Web Services Korea
 
간단한 게임을 쉽고 저렴하게 서비스해보자! ::: AWS Game Master 온라인 시리즈 #1
간단한 게임을 쉽고 저렴하게 서비스해보자! ::: AWS Game Master 온라인 시리즈 #1간단한 게임을 쉽고 저렴하게 서비스해보자! ::: AWS Game Master 온라인 시리즈 #1
간단한 게임을 쉽고 저렴하게 서비스해보자! ::: AWS Game Master 온라인 시리즈 #1Amazon Web Services Korea
 
[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...
[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...
[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...Jung Hyun Nam
 
HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다Jongwon Han
 
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈 [애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈 Amazon Web Services Korea
 
Cloud market trends, what is kubernets? (Korean)
Cloud market trends, what is kubernets? (Korean)Cloud market trends, what is kubernets? (Korean)
Cloud market trends, what is kubernets? (Korean)DonghwanKim85
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료rockplace
 
[웨비나] 다중 AWS 계정에서의 CI/CD 구축
[웨비나] 다중 AWS 계정에서의 CI/CD 구축[웨비나] 다중 AWS 계정에서의 CI/CD 구축
[웨비나] 다중 AWS 계정에서의 CI/CD 구축BESPIN GLOBAL
 
Cloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_serviceCloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_serviceDennis Hong
 
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container DayEC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container DayAmazon Web Services Korea
 
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdfJaesuk Ahn
 
세션0_데보션테크데이_개회사_v1.0.pdf
세션0_데보션테크데이_개회사_v1.0.pdf세션0_데보션테크데이_개회사_v1.0.pdf
세션0_데보션테크데이_개회사_v1.0.pdfJaesuk Ahn
 
[제3회 스포카콘] Kubernetes in Spoqa
[제3회 스포카콘] Kubernetes in Spoqa[제3회 스포카콘] Kubernetes in Spoqa
[제3회 스포카콘] Kubernetes in SpoqaKangwook Lee
 
Microsoft Workloads도 AWS가 제격!-박주연, AWS MSFT Specialist SA / 서경구, AWS Speciali...
Microsoft Workloads도 AWS가 제격!-박주연, AWS MSFT Specialist SA / 서경구, AWS Speciali...Microsoft Workloads도 AWS가 제격!-박주연, AWS MSFT Specialist SA / 서경구, AWS Speciali...
Microsoft Workloads도 AWS가 제격!-박주연, AWS MSFT Specialist SA / 서경구, AWS Speciali...Amazon Web Services Korea
 

Semelhante a 코딩이랑 무관합니다만, 2019년 6월 발표 자료 (20)

Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
 
Running Kubernetes in hybrid environments with AWS (EKS Distro & EKS Anywhere...
Running Kubernetes in hybrid environments with AWS (EKS Distro & EKS Anywhere...Running Kubernetes in hybrid environments with AWS (EKS Distro & EKS Anywhere...
Running Kubernetes in hybrid environments with AWS (EKS Distro & EKS Anywhere...
 
AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018
AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018 AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018
AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
 
Bon voyage Docker_Kubernetes
Bon voyage Docker_KubernetesBon voyage Docker_Kubernetes
Bon voyage Docker_Kubernetes
 
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트:: AWS S...
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트::  AWS S...AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트::  AWS S...
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트:: AWS S...
 
간단한 게임을 쉽고 저렴하게 서비스해보자! ::: AWS Game Master 온라인 시리즈 #1
간단한 게임을 쉽고 저렴하게 서비스해보자! ::: AWS Game Master 온라인 시리즈 #1간단한 게임을 쉽고 저렴하게 서비스해보자! ::: AWS Game Master 온라인 시리즈 #1
간단한 게임을 쉽고 저렴하게 서비스해보자! ::: AWS Game Master 온라인 시리즈 #1
 
[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...
[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...
[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...
 
HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다
 
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈 [애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
 
Cloud market trends, what is kubernets? (Korean)
Cloud market trends, what is kubernets? (Korean)Cloud market trends, what is kubernets? (Korean)
Cloud market trends, what is kubernets? (Korean)
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료
 
[웨비나] 다중 AWS 계정에서의 CI/CD 구축
[웨비나] 다중 AWS 계정에서의 CI/CD 구축[웨비나] 다중 AWS 계정에서의 CI/CD 구축
[웨비나] 다중 AWS 계정에서의 CI/CD 구축
 
Cloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_serviceCloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_service
 
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container DayEC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
 
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
 
세션0_데보션테크데이_개회사_v1.0.pdf
세션0_데보션테크데이_개회사_v1.0.pdf세션0_데보션테크데이_개회사_v1.0.pdf
세션0_데보션테크데이_개회사_v1.0.pdf
 
[제3회 스포카콘] Kubernetes in Spoqa
[제3회 스포카콘] Kubernetes in Spoqa[제3회 스포카콘] Kubernetes in Spoqa
[제3회 스포카콘] Kubernetes in Spoqa
 
Microsoft Workloads도 AWS가 제격!-박주연, AWS MSFT Specialist SA / 서경구, AWS Speciali...
Microsoft Workloads도 AWS가 제격!-박주연, AWS MSFT Specialist SA / 서경구, AWS Speciali...Microsoft Workloads도 AWS가 제격!-박주연, AWS MSFT Specialist SA / 서경구, AWS Speciali...
Microsoft Workloads도 AWS가 제격!-박주연, AWS MSFT Specialist SA / 서경구, AWS Speciali...
 

코딩이랑 무관합니다만, 2019년 6월 발표 자료

  • 1. Enter Windows Kubernetes DEVSISTERS 한국 Azure 사용자 그룹 남정현
  • 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를 서버 배포를 위해서 변경하지 않음 컨테이너 내 문제 발생 시 컨테이너를 쉽게 리셋 가능 한 컴퓨터로 많은 수의 서버를 효율적으로 호스팅 이미지의 내용은 항상 고정되고, 증적으로 관리됨 증적분의 이미지를 다른 사람과 공유하여 재사용 가능
  • 9. Kubernetes에 대하여  Google이 2014년에 공개한 오픈 소스 프로젝트  컨테이너 플랫폼  마이크로서비스 플랫폼  이식성 높은 클라우드 플랫폼
  • 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
  • 19.
  • 21.
  • 23.
  • 25.
  • 26. YAML Code  https://gist.github.com/rkttu/e30542d75b8e48d 0cca1eec6eb0cf86b  Hybrid Workload에서 중요한 것은 Node Selector를 통한 적절한 노드 선택.  Windows 노드에 Linux 컨테이너를 배정하거나, 반대의 상황이 발생하면 서비스가 시작되지 못함.
  • 27. 마무리  이제 컨테이너와 K8s 모두 Windows를 OS로 사 용할 수 있습니다.  컨테이너로 기존 서버 애플리케이션을 변환할 수 있으면 관리가 한층 더 쉬워집니다.  K8s 위에 올릴 수 있으면 항상 안정적으로 동작 하는 서버 애플리케이션을 만들 수 있습니다.  이제 Windows와 Linux 서버를 같이 쓸 수 있습 니다.