18. Docker Orchestration 이란 …
여러 개의 컨테이너로 하나의 서비스를 구성하는 것
18
http://svc.io:80
tcp:6380tcp:3306
http://svc.io:80
19. Orchestration 이 필요한 이유
19
Composition
여러 종류의 컨테이너로 구성된 서비스의 설정 및 연동
Replication
Scalability, Fault Tolerance, High Availability
“Write Once Run Anywhere”
같은 이미지가 Local/Cluster 에서 모두 동작할 수 있도록
20. Orchestration 의 요소 (4가지 정도만 …)
20
1. Scheduling
클러스터의 적절한 노드에 컨테이너를 실행 (# of)
(CPU, MEM, Storage, Context, …)
2. Networking
컨테이너 사이/외부와의 네트워킹
(L2 Overlay, L4 Load Balancing, HTTP Proxy, …)
21. 21
3. Discovery
컨테이너/그룹을 찾아내는 방법
(Membership, KV Store, DNS, …)
4. Logging / Monitoring / Alerting
로그를 보고, 상태를 확인하고 이상을 감지
…
Orchestration 의 요소 (4가지 정도만 …)
25. Native Cluster, Docker API 는 매력적인 Feature
만족스럽지 않음…
Docker Orchestration API
Replication 상태 관리
Heavy Development (0.4.0 에서 많이 개선)
언젠가는 다시 검토 (하지만 지금은 아니라고 판단.)
25
Docker Swarm 일단 포기
26. “Google Style” 클라우드 서비스 관리
서비스에 적합한 Docker 클러스터를 가장 빠르게 구축
Pods, Replication Controllers, Labels, Services, …
안정성 (Ver 1.0, Google Cloud Engine)
http://stackoverflow.com/questions/26705201/whats-the-difference-between-apaches-mesos-and-googles-kubernetes 26
Kubernetes
27. 비교적 원하는 기능이 “예상대로” 동작했고,
현 시점에서 가장 앞선 구현체 중 하나로 판단.
더 필요한 것들.
Docker API, Orchestration API
External Traffic (Discovery, Forwarding)
Multi-Cluster 관리
…
27
Kubernetes 선택
34. Build Pool 의 효과
Fast Build
빌드 자원의 공유로 고성능 빌드 가능
Pre-Built
C/C++, Java, Android, node.js, …
No management
34
평균 빌드 시간 비교
VM 1core (38 sec)
VM 2core (23 sec)
BP (13 sec)
2배
3배
+ Docker Orchestration 구축 경험
36. 컨테이너는 Stateless 해야 한다.
Jenkins 의 누적 데이터를 Container 에 저장
주기적인 이미지 백업 (일 단위)
문제점:
백업이 제대로 되고 있는지 확인하기 어려움
State 변경하기 어려움 (ex. Environment Variable)
36
37. 컨테이너 데이터의 저장 방법이 필요하다.
37
컨테이너 종료 시 삭제
Instant, No backup
컨테이너 종료 후에도 보관
여러 컨테이너 사이에 공유 (중복 데이터)
Label 등으로 특정 컨테이너에 바인딩
38. Multi-Cluster 관리가 필요하다.
38
비교적 이른 시점부터 Multi-Cluster 를 고려 해야…
컨테이너가 Cluster 별 설정이 필요한 경우가 생김.
Ex) Multi-IDC, Network ACL, …
40. ShipDock : “Shipping Docker”
Docker Test Pool
- 기반 기술과 “돌아가는 버전” 확보
Continuous Deployment
- 소스 푸쉬를 서비스에 반영
Platform As A Service 준비
- “Write Once, Run Anywhere”
40
45. Docker Registry
V2.x 로 오면서 많은 부분 개선
Pull Performance
Webhook, …
일부 보완 필요
이미지 Search (Elastic Search)
Trusted Image Registry
Proxy / Mirroring, Webhook, …
45
46. Consul
ETCD 외에 다른 Service Discovery 검토 목적
목적이 명확한 점이 매력
Membership, Consensus
Cluster KV Store
DNS for Container/Group
46