Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Docker + Kubernetes를
이용한 빌드 서버 가상화 사례
Naver Labs 김훈민
Docker + Kubernetes를 이용한 빌드 가상화 사례
Kubernetes 분석/삽질기
누구?
• 남편이자 두 아이의 아빠
• ~ 2011 웹개발
• ~ 2014 성능팀, Arcus 캐시 개발/운영
• 2015 ~ nDeploy 빌드 배포 시스템
Naver Labs & D2 Program
• Naver Labs
• 네이버의 핵심기술에 대한 Research & Engineering
• http://labs.naver.com
• D2 Program (For Deve...
오늘의 주제
• nDeploy
• Docker, CoreOS
• Kubernetes
오늘의 주제
• nDeploy
• Docker, CoreOS
• Kubernetes
• 경험으로 얻은 소소한 이야기
nDeploy
• 네이버와 라인, NHNEnt.에서 사용하는 빌드/배포 시스템.
• 사용자가 관리하는 Jenkins 서버를 좀 더 쉽고 강력하게 쓸
수 있게 해줍니다.
• 접근 권한 관리, 배포할 서버 관리, 시나리오에...
번거로운 Jenkins 설치
• 자유도가 높아질 수록 운영 비용이 올라 갔습니다.
• Jenkins 설치는 어떻게 하나요?
• 플러그인은 뭘 깔아야 하나요?
• 서버 검색이 안되요 ㅠ_ㅜ
• VM을 쓰고 있는데 너무 느...
Jenkins를 풀(pool)로 제공해봐
• VM만으로는 해결이 되지 않는다.
• 고사양의 공용 빌드 서버에 Jenkins를 여러 개 띄우려면?
• 각 사용자 별로 독립적인 환경을 어떻게 제공하지?
이 녀석들로 시작했지만…
여러 호스트에서 컨테이너를
관리하려면 어떻게 해야하지?
Host
Host
Host
Host
Host
Host
Controller
Docker Orchestration
CoreOS Fleet
• CoreOS에 내장. systemd를 클러스터 레벨로 지원.
• 단순한 스케줄러.
• 도커 컨테이너에 대한 별도의 지원은 없음.
• 서비스 디스커버리를 직접 구현해야 함.
• 하지만 도커 컨테...
도커 Swarm
• 0.1.0 릴리즈 직후 테스트.
• Balanced 스케줄러가 없음.
• 컨테이너 리밸런싱 안됨.
• 컨테이너 리스트 캐싱 버그.
• swarm-agent가 죽어도 알아 차리지 못함.
• 0.2.0에...
타임 오버
http://kubernetes.io/
Kubernetes
• 구글에서 공개한 리눅스 컨테이너 관리 시스템.
• GCE, AWS 같은 클라우드 환경과 물리 장비를 모두 지원.
• 구글의 리눅스 컨테이너 운용 경험을 녹였다고 함.
그리스어로 배의 조타수(Hel...
kubectl
• kubectl create -f controller.yaml
• kubectl create -f ./jenkins
• kubectl update -f ./jenkins
• kubectl delete -...
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/design/architecture.md
아키텍처
Master
ApiServer
ReplicationController
Scheduler
Minion
Kubelet
Proxy
Minion
POD
Container
Container
Minion
POD
컨테이너들의 집합
JSON, YAML로 정의
name:
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Upcoming SlideShare
Loading in …5
×

Docker + Kubernetes를 이용한 빌드 서버 가상화 사례

21,323 views

Published on

Docker + Kubernetes를 이용한 빌드 서버 가상화 사례 소개
작성자 : 네이버랩스 김훈민

Published in: Software
  • Be the first to comment

Docker + Kubernetes를 이용한 빌드 서버 가상화 사례

  1. 1. Docker + Kubernetes를 이용한 빌드 서버 가상화 사례 Naver Labs 김훈민
  2. 2. Docker + Kubernetes를 이용한 빌드 가상화 사례 Kubernetes 분석/삽질기
  3. 3. 누구? • 남편이자 두 아이의 아빠 • ~ 2011 웹개발 • ~ 2014 성능팀, Arcus 캐시 개발/운영 • 2015 ~ nDeploy 빌드 배포 시스템
  4. 4. Naver Labs & D2 Program • Naver Labs • 네이버의 핵심기술에 대한 Research & Engineering • http://labs.naver.com • D2 Program (For Developers, By Developers) • 가치 있는 기술 지식 생산을 돕고 경험을 나누며, 개발자 를 지원합니다.
  5. 5. 오늘의 주제 • nDeploy • Docker, CoreOS • Kubernetes
  6. 6. 오늘의 주제 • nDeploy • Docker, CoreOS • Kubernetes • 경험으로 얻은 소소한 이야기
  7. 7. nDeploy • 네이버와 라인, NHNEnt.에서 사용하는 빌드/배포 시스템. • 사용자가 관리하는 Jenkins 서버를 좀 더 쉽고 강력하게 쓸 수 있게 해줍니다. • 접근 권한 관리, 배포할 서버 관리, 시나리오에 기반한 자유 도 높은 빌드 프로세스 정의가 가능합니다. • In-house 앱 배포 기능도 있습니다.
  8. 8. 번거로운 Jenkins 설치 • 자유도가 높아질 수록 운영 비용이 올라 갔습니다. • Jenkins 설치는 어떻게 하나요? • 플러그인은 뭘 깔아야 하나요? • 서버 검색이 안되요 ㅠ_ㅜ • VM을 쓰고 있는데 너무 느려요 ㅠ_ㅜ
  9. 9. Jenkins를 풀(pool)로 제공해봐 • VM만으로는 해결이 되지 않는다. • 고사양의 공용 빌드 서버에 Jenkins를 여러 개 띄우려면? • 각 사용자 별로 독립적인 환경을 어떻게 제공하지?
  10. 10. 이 녀석들로 시작했지만…
  11. 11. 여러 호스트에서 컨테이너를 관리하려면 어떻게 해야하지? Host Host Host Host Host Host Controller
  12. 12. Docker Orchestration
  13. 13. CoreOS Fleet • CoreOS에 내장. systemd를 클러스터 레벨로 지원. • 단순한 스케줄러. • 도커 컨테이너에 대한 별도의 지원은 없음. • 서비스 디스커버리를 직접 구현해야 함. • 하지만 도커 컨테이너를 여러 호스트에서 간단히 실행하기 에는 좋은 플랫폼.
  14. 14. 도커 Swarm • 0.1.0 릴리즈 직후 테스트. • Balanced 스케줄러가 없음. • 컨테이너 리밸런싱 안됨. • 컨테이너 리스트 캐싱 버그. • swarm-agent가 죽어도 알아 차리지 못함. • 0.2.0에서 어느 정도 개선되었습니다.
  15. 15. 타임 오버
  16. 16. http://kubernetes.io/
  17. 17. Kubernetes • 구글에서 공개한 리눅스 컨테이너 관리 시스템. • GCE, AWS 같은 클라우드 환경과 물리 장비를 모두 지원. • 구글의 리눅스 컨테이너 운용 경험을 녹였다고 함. 그리스어로 배의 조타수(Helmsman)
  18. 18. kubectl • kubectl create -f controller.yaml • kubectl create -f ./jenkins • kubectl update -f ./jenkins • kubectl delete -f ./jenkins
  19. 19. https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/design/architecture.md
  20. 20. 아키텍처 Master ApiServer ReplicationController Scheduler Minion Kubelet Proxy Minion POD Container Container Minion
  21. 21. POD 컨테이너들의 집합
  22. 22. JSON, YAML로 정의 name:

×