SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
@ 2 6 0
. 2 16 0) 6 68 6
(
,
o d
:GICJ
0 . 8L DB .DGL 7H 82 kh
0po 0 c 8IB K .DGL St m ae
uui
7H K C 2IG B - I K D St 2 AGLJ /IB I
uui vzn / 7 kh
.G L BKN KB BKN
( ) 7H K C / N nb l 1GIBOG : 8DL B
CL I K J cn kh AKKHJ C J CI
CL I K J D K sg AKKH JD C C J BG - -
0GG D KL N PS rW y IGLH D I
) (#
Ni O c bp D
A 3 ? A
1
A 3 ? A m
3 ? A P S
C A
7 7 : .2A C ) : 2A
: .2A C 2AA ? e
kneK P oMle d D a
: .2A C ) : 2A O g
!!
- - / I , :
() )
신규 클러스터 생성
클러스터 상태 토폴로지
클러스터 관리 화면
Worker node 추가(증설) Cluster 사용자 추가/제거
Builder
/
() )
1) Push / PR
2) Merge / Release
Authentication
Authorization
Access Control
Auto-Security Scan
Auto-Build
Auto-Deploy
4) Image build
D2hub
3) Web hook
5) Image push
6) Deploy
부서별 / 서비스 별 독립 클러스터 제공
카카오 개발자
DKOS
git clone
image pull
애조로 Krane KEMI
DNSaaS IaaS Monitoring
IMS
인프라 구성 정보 관리
,!!
() )
• 사용중인 클러스터 : 700 여개
• 전체 노드 수 : 8000 여대 (물리서버 1100 여대)
• 전체 컨테이너 개수 : 18,000 여개
• 단일 최대 클러스터 : 1600대
• 최대 TPS(http, https) : x0000
() )
카카오톡 게임탭 헤어샵 주문하기 카카오파머카카오T
다음 메일 다음 뉴스 카카오 번역(GPU)
() )
알람 생성 정책 설정
() )
. ,
• App을 띄우면 LB 가 붙는 직관적 개념
• mesos / marathon 기반
• 익숙한 사용성과 아키텍처
• 기존 클러스터 마이그레이션 용이
• 상용 버전 존재
•Pod, Service 등 낯선 추상 개념
• 사내 시스템 연동을 다 새로 해야함
• 활성화된 커뮤니티
• 거의 모든 퍼블릭 클라우드에서 지원
• DeFacto (사실상의 표준)
Mesos + marathon의 주도권이 mesosphere 로
넘어가면서 신규 버전 서비스를 위해서는
DC/OS로 신규 구성 필요
:
Mesos + marathon Kubernetes
Deploy
O
rolling-update, blue-green, rollback
+ canary(vamp 추가 설치)
O
rolling-update, blue-green, canary,
rollback
Batch job O O
High Availability O O
Service Discovery & Load
Balancing
O O
Self-Healing O O
Health Checks O O
Web UI O O
CLI X, DC/OS(O) O
Auto Scaling O O
Persistent volume O O
Performance and
Scalability
10,000 node 5,000 node
Networking
Host / bridge
+ plugins
Host / bridge
+ plugins
event tracking Last one History
life cycle hook X O
... ...
! !
1. Cloud native 한 서비스 운영/디버깅 :
• local proxy 기능을 이용한 debugging (console, log, network)
• Label / Selector, Taint / Tolerations
• Event Tracking
• configMap, Secret
• life cycle hook (preStop, postStart...)
2. 오픈소스 생태계
• k8s native support : kubeflow(TensorFlow), jenkinsX, rook(ceph), spark, spinnaker..
• k8s official support : hadoop, kafaka, redis, istio...
• Community power : gitHub, stack overflow, blog, slack..
Replica Set(From Deployment)
) () ) ) ,
• 서비스 참여 중이었던 Pod 를 격리하고, 내 Local에 연결해서 테스트하고 디버깅 할 수 있음.
• Label / Selector, Taint / Tolerations 활용 : Pod 격리 가능, 장애 복구 시 우선 순위 높은 서비스부터 살리기에 유용.
Cluster Network
Localhost
Notebook
Service(Type=LoadBalancer)
pod podpodpod
Label
Service=In
Label
Service=In
Label
Service=In
Label
Service=Out
USER
Log, Console, Network
Proxy
1) 로컬에서 Pod 로그 확인
Kubectl logs –f ${POD_NAME}
3) 로컬에서 Pod bash 콘솔 접근
Kubectl exec –it ${POD_NAME} /bin/bash
2) 로컬에서 Pod HTTP 8080 포트 접근
Kubectl port-forward ${POD_NAME} 8080:8080
-> http://localhost:8080
Pod IP가 뭔지, 어디 호스트 서버에 떠 있는지 알 필요 없음.
Selector
Service=In
Selector
Service=In
• Event Tracking
-> kubernetes system log 를 찾지 않아도 Event History 를 통해 Resource 별 이슈의 원인을 알 수 있음.
-> 장애로 인해 Master 연결이 끊어진 노드의 현황에 대해서도 확인할 수 있음.
• Event Tracking
-> Marathon 의 경우 image pull 이나 resource 가 없어서 스케줄링에 실패 했을 때 waiting 상태로 기다리고 있음.
<- Case : Mesos Marathon apps with
persistent volume apps stuck at
suspended
사용자는 무엇이 문제인지 알 수가 없음.
Marathon 이나 Mesos log를 봐야 함
<- 슬레이브가 네트워크 단절로
마스터와의 연결이 끊어지면
리스트에서 삭제해버림.
슬레이브가 수 천 수 백대 되는 상황에서
어떤 슬레이브가 아직 못 붙었는지
확인하기가 어려움.
깨끗한 코드 작성, 자동화 된 테스트, 리팩토링, 코드 품질
실제 세계에 가까운 비즈니스 관점에서 소프트웨어 설계
대규모 컨테이너 마이크로 서비스를 자동화하기 위한 패턴
분산 응용 프로그램을 설계. 확장성, 탄력성 고려
Clean Code + DDD + MSA 다 배웠더니 Cloud Native 도 알아야 되는 세상이 왔음...
Ref : https://www.slideshare.net/bibryam/designing-cloud-native-applications-with-kubernetes
마이크로 서비스 아키텍처 클라우드 네이티브 아키텍처
<- 오케스트레이터의 매니지먼트 사이클과
어플리케이션이 유기적으로 연동되게
해주는 설계가 필요.
*클라우드 네이티브 어플리케이션을 개발할 때 고려할 점 :
https://www.cncf.io/blog/2017/05/15/developing-cloud-native-applications/
*Pod 설계 패턴 예 : Pod 컨테이너 끼리 로컬 볼륨과 네트워크를 공유하는 구조를 활용
사이드카 패턴 엠베서더/프록시 패턴
https://vitalflux.com/container-design-patterns-kubernetes-pods-design/
어댑터 패턴
) (
1. Single concern principle (SCP) : container 1개에는 단일 목적의 process 만 띄워주세요.
2. High observability principle (HOP) : Readiness / HealthCheck API 제공, log는 stdout, stderr 로.
3. Life-cycle conformance principle (LCP) : SIGTERM / SIGKILL 처리 필요, PreStop / PostStart 활용.
4. Image immutability principle (IIP) : Dev/ Test / Prod 환경에 모두 같은 Image 사용.
5. Process disposability principle (PDP) : State는 외부화하거나 분산시켜야 하며 App의 시작/종료는 신속하게.
6. Self-containment principle (S-CP) : 모든 dependency 는 build time에 image에 넣고, 환경에 따라 다른
정보는 Run time에 configMap, Storage에 넣어주세요.
7. Runtime confinement principle (RCP) : container app이 필요한 CPU / MEM / Disk 에 대해 고려되어야 함.
https://kubernetes.io/blog/2018/03/principles-of-container-app-design/
High observability principle (HOP)
Readiness / HealthCheck API 제공, log는 stdout, stderr 로 뿌려주세요.
1) 컨테이너가 살았는지? 죽었는지? 서비스 트래픽을 보내 줘도 되는지? 안되는지?
-> 오케스트레이터가 컨테이너 앱의 상태를 알 수 있는 API가 필요.
2) 컨테이너 안에서 파일로 로그를 쌓으면?
-> 오케스트레이터 입장에선 아무런 로그도 남기지 않는 앱 (관리 X, 디버깅 기능 X)
-> 컨테이너 종료 시 로그 유실
-> 해당 컨테이너는 다른 노드에 가서 뜸 : 추적 어려움
-> 로그 크기가 커졌을 때 Disk Full : Host 전체 컨테이너 장애
3) log 를 stdout / stderr 로 보낸 경우
-> 외부 로그 수집시스템과의 연계(플랫폼에서 제공) : ELK Stack 등
-> 오케스트레이터에서 자동으로 logrotate 실행
-> json parsing 등 드라이버 제공도 해줌
-> 오케스트레이터의 debugging 기능 이용 가능
Life-cycle conformance principle (LCP)
1) SIGTERM / SIGKILL 처리 필요
- 컨테이너는 종료 될 때 SIGTERM 을 받고 SIGKILL 을 통해 종료.
- 이때 SIGTERM에 대한 처리가 Application 에 구현되어 있지 않으면 처리하던 Task 를 유실하고 그냥 종료.
- 무중단 배포를 위한 필수 구현 사항.
Life-cycle conformance principle (LCP)
2) K8s의 경우 PreStop / PostStart 활용.
<- graceful shutdown command
Container Orchestrator 만으로는 부족
Application의 Cloud Native로의 변화 필요
개발자들의 적극적인 참여
조직 문화, 일하는 방식의 변화 필요

Weitere ähnliche Inhalte

Was ist angesagt?

Krnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkosKrnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkosWon-Chon Jung
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)용호 최
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링OpenStack Korea Community
 
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...OpenStack Korea Community
 
Mesos + Marathon + Docker
Mesos + Marathon + DockerMesos + Marathon + Docker
Mesos + Marathon + Dockerbighouse
 
[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 Openstack[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 OpenstackOpenStack Korea Community
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축철구 김
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm성일 임
 
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱uEngine Solutions
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center어형 이
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개OpenStack Korea Community
 
cbhoilab vagrant와 ansible 쿠버네티스 설치 v2
cbhoilab vagrant와 ansible 쿠버네티스 설치 v2cbhoilab vagrant와 ansible 쿠버네티스 설치 v2
cbhoilab vagrant와 ansible 쿠버네티스 설치 v2choi sungwook
 
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud NativeOpenStack Korea Community
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-HelmSK Telecom
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestrationNAVER D2
 
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User GuideSANG WON PARK
 

Was ist angesagt? (20)

Krnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkosKrnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkos
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
 
쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택
 
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
 
Mesos + Marathon + Docker
Mesos + Marathon + DockerMesos + Marathon + Docker
Mesos + Marathon + Docker
 
[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 Openstack[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 Openstack
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm
 
Kubernetes
Kubernetes Kubernetes
Kubernetes
 
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
 
cbhoilab vagrant와 ansible 쿠버네티스 설치 v2
cbhoilab vagrant와 ansible 쿠버네티스 설치 v2cbhoilab vagrant와 ansible 쿠버네티스 설치 v2
cbhoilab vagrant와 ansible 쿠버네티스 설치 v2
 
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestration
 
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User Guide
 

Ähnlich wie [OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스를 위한 여정

[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석Tommy Lee
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCPDaegeun Kim
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Nativerockplace
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기YoungSu Son
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기YoungSu Son
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) VMware Tanzu Korea
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 
[slideshare]k8s.pptx
[slideshare]k8s.pptx[slideshare]k8s.pptx
[slideshare]k8s.pptxssuserb8551e
 
Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0Kidong Lee
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postInho Kang
 
주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기Yeonhee Kim
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.효근 박
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 KubernetesTommy Lee
 

Ähnlich wie [OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스를 위한 여정 (20)

[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCP
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Native
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 
Redis
RedisRedis
Redis
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS)
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
[slideshare]k8s.pptx
[slideshare]k8s.pptx[slideshare]k8s.pptx
[slideshare]k8s.pptx
 
Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_post
 
주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
 
2015 oce specification
2015 oce specification2015 oce specification
2015 oce specification
 

Mehr von OpenStack Korea Community

2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티OpenStack Korea Community
 
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...OpenStack Korea Community
 
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)OpenStack Korea Community
 
[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...
[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...
[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...OpenStack Korea Community
 
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...OpenStack Korea Community
 
[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...
[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...
[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...OpenStack Korea Community
 
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"OpenStack Korea Community
 
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architectureOpenStack Korea Community
 
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with PrometheusOpenStack Korea Community
 
[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] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...OpenStack Korea Community
 
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때 [OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때 OpenStack Korea Community
 
[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무
[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무
[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무OpenStack Korea Community
 
[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...
[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...
[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...OpenStack Korea Community
 
[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성
[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성
[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성OpenStack Korea Community
 
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크OpenStack Korea Community
 
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...OpenStack Korea Community
 
[OpenInfra Days Korea 2018] (Track 3) - OpenStack Automation with Ansible
[OpenInfra Days Korea 2018] (Track 3) - OpenStack Automation with Ansible[OpenInfra Days Korea 2018] (Track 3) - OpenStack Automation with Ansible
[OpenInfra Days Korea 2018] (Track 3) - OpenStack Automation with AnsibleOpenStack Korea Community
 
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...OpenStack Korea Community
 
[OpenInfra Days Korea 2018] (Track 2) - OpenStack 기반의 IaaS, PaaS 통합 Orchestra...
[OpenInfra Days Korea 2018] (Track 2) - OpenStack 기반의 IaaS, PaaS 통합 Orchestra...[OpenInfra Days Korea 2018] (Track 2) - OpenStack 기반의 IaaS, PaaS 통합 Orchestra...
[OpenInfra Days Korea 2018] (Track 2) - OpenStack 기반의 IaaS, PaaS 통합 Orchestra...OpenStack Korea Community
 

Mehr von OpenStack Korea Community (20)

2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
 
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
 
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)
 
[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...
[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...
[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...
 
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
 
[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...
[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...
[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...
 
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
 
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
 
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
 
[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] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
 
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때 [OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
 
[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무
[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무
[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무
 
[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...
[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...
[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...
 
[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성
[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성
[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성
 
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
 
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
 
[OpenInfra Days Korea 2018] (Track 3) - OpenStack Automation with Ansible
[OpenInfra Days Korea 2018] (Track 3) - OpenStack Automation with Ansible[OpenInfra Days Korea 2018] (Track 3) - OpenStack Automation with Ansible
[OpenInfra Days Korea 2018] (Track 3) - OpenStack Automation with Ansible
 
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
 
[OpenInfra Days Korea 2018] (Track 2) - OpenStack 기반의 IaaS, PaaS 통합 Orchestra...
[OpenInfra Days Korea 2018] (Track 2) - OpenStack 기반의 IaaS, PaaS 통합 Orchestra...[OpenInfra Days Korea 2018] (Track 2) - OpenStack 기반의 IaaS, PaaS 통합 Orchestra...
[OpenInfra Days Korea 2018] (Track 2) - OpenStack 기반의 IaaS, PaaS 통합 Orchestra...
 

[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스를 위한 여정

  • 1. @ 2 6 0 . 2 16 0) 6 68 6 ( ,
  • 2. o d :GICJ 0 . 8L DB .DGL 7H 82 kh 0po 0 c 8IB K .DGL St m ae uui 7H K C 2IG B - I K D St 2 AGLJ /IB I uui vzn / 7 kh .G L BKN KB BKN ( ) 7H K C / N nb l 1GIBOG : 8DL B CL I K J cn kh AKKHJ C J CI CL I K J D K sg AKKH JD C C J BG - - 0GG D KL N PS rW y IGLH D I ) (#
  • 3. Ni O c bp D A 3 ? A 1 A 3 ? A m 3 ? A P S C A 7 7 : .2A C ) : 2A : .2A C 2AA ? e kneK P oMle d D a : .2A C ) : 2A O g !!
  • 4. - - / I , : () ) 신규 클러스터 생성 클러스터 상태 토폴로지 클러스터 관리 화면 Worker node 추가(증설) Cluster 사용자 추가/제거
  • 5. Builder / () ) 1) Push / PR 2) Merge / Release Authentication Authorization Access Control Auto-Security Scan Auto-Build Auto-Deploy 4) Image build D2hub 3) Web hook 5) Image push 6) Deploy 부서별 / 서비스 별 독립 클러스터 제공 카카오 개발자 DKOS git clone image pull 애조로 Krane KEMI DNSaaS IaaS Monitoring IMS 인프라 구성 정보 관리 ,!!
  • 6. () ) • 사용중인 클러스터 : 700 여개 • 전체 노드 수 : 8000 여대 (물리서버 1100 여대) • 전체 컨테이너 개수 : 18,000 여개 • 단일 최대 클러스터 : 1600대 • 최대 TPS(http, https) : x0000
  • 7. () ) 카카오톡 게임탭 헤어샵 주문하기 카카오파머카카오T 다음 메일 다음 뉴스 카카오 번역(GPU)
  • 8. () ) 알람 생성 정책 설정
  • 10. . , • App을 띄우면 LB 가 붙는 직관적 개념 • mesos / marathon 기반 • 익숙한 사용성과 아키텍처 • 기존 클러스터 마이그레이션 용이 • 상용 버전 존재 •Pod, Service 등 낯선 추상 개념 • 사내 시스템 연동을 다 새로 해야함 • 활성화된 커뮤니티 • 거의 모든 퍼블릭 클라우드에서 지원 • DeFacto (사실상의 표준) Mesos + marathon의 주도권이 mesosphere 로 넘어가면서 신규 버전 서비스를 위해서는 DC/OS로 신규 구성 필요
  • 11. : Mesos + marathon Kubernetes Deploy O rolling-update, blue-green, rollback + canary(vamp 추가 설치) O rolling-update, blue-green, canary, rollback Batch job O O High Availability O O Service Discovery & Load Balancing O O Self-Healing O O Health Checks O O Web UI O O CLI X, DC/OS(O) O Auto Scaling O O Persistent volume O O Performance and Scalability 10,000 node 5,000 node Networking Host / bridge + plugins Host / bridge + plugins event tracking Last one History life cycle hook X O ... ...
  • 12. ! ! 1. Cloud native 한 서비스 운영/디버깅 : • local proxy 기능을 이용한 debugging (console, log, network) • Label / Selector, Taint / Tolerations • Event Tracking • configMap, Secret • life cycle hook (preStop, postStart...) 2. 오픈소스 생태계 • k8s native support : kubeflow(TensorFlow), jenkinsX, rook(ceph), spark, spinnaker.. • k8s official support : hadoop, kafaka, redis, istio... • Community power : gitHub, stack overflow, blog, slack..
  • 13. Replica Set(From Deployment) ) () ) ) , • 서비스 참여 중이었던 Pod 를 격리하고, 내 Local에 연결해서 테스트하고 디버깅 할 수 있음. • Label / Selector, Taint / Tolerations 활용 : Pod 격리 가능, 장애 복구 시 우선 순위 높은 서비스부터 살리기에 유용. Cluster Network Localhost Notebook Service(Type=LoadBalancer) pod podpodpod Label Service=In Label Service=In Label Service=In Label Service=Out USER Log, Console, Network Proxy 1) 로컬에서 Pod 로그 확인 Kubectl logs –f ${POD_NAME} 3) 로컬에서 Pod bash 콘솔 접근 Kubectl exec –it ${POD_NAME} /bin/bash 2) 로컬에서 Pod HTTP 8080 포트 접근 Kubectl port-forward ${POD_NAME} 8080:8080 -> http://localhost:8080 Pod IP가 뭔지, 어디 호스트 서버에 떠 있는지 알 필요 없음. Selector Service=In Selector Service=In
  • 14. • Event Tracking -> kubernetes system log 를 찾지 않아도 Event History 를 통해 Resource 별 이슈의 원인을 알 수 있음. -> 장애로 인해 Master 연결이 끊어진 노드의 현황에 대해서도 확인할 수 있음.
  • 15. • Event Tracking -> Marathon 의 경우 image pull 이나 resource 가 없어서 스케줄링에 실패 했을 때 waiting 상태로 기다리고 있음. <- Case : Mesos Marathon apps with persistent volume apps stuck at suspended 사용자는 무엇이 문제인지 알 수가 없음. Marathon 이나 Mesos log를 봐야 함 <- 슬레이브가 네트워크 단절로 마스터와의 연결이 끊어지면 리스트에서 삭제해버림. 슬레이브가 수 천 수 백대 되는 상황에서 어떤 슬레이브가 아직 못 붙었는지 확인하기가 어려움.
  • 16. 깨끗한 코드 작성, 자동화 된 테스트, 리팩토링, 코드 품질 실제 세계에 가까운 비즈니스 관점에서 소프트웨어 설계 대규모 컨테이너 마이크로 서비스를 자동화하기 위한 패턴 분산 응용 프로그램을 설계. 확장성, 탄력성 고려 Clean Code + DDD + MSA 다 배웠더니 Cloud Native 도 알아야 되는 세상이 왔음... Ref : https://www.slideshare.net/bibryam/designing-cloud-native-applications-with-kubernetes
  • 17. 마이크로 서비스 아키텍처 클라우드 네이티브 아키텍처 <- 오케스트레이터의 매니지먼트 사이클과 어플리케이션이 유기적으로 연동되게 해주는 설계가 필요. *클라우드 네이티브 어플리케이션을 개발할 때 고려할 점 : https://www.cncf.io/blog/2017/05/15/developing-cloud-native-applications/
  • 18. *Pod 설계 패턴 예 : Pod 컨테이너 끼리 로컬 볼륨과 네트워크를 공유하는 구조를 활용 사이드카 패턴 엠베서더/프록시 패턴 https://vitalflux.com/container-design-patterns-kubernetes-pods-design/ 어댑터 패턴
  • 19. ) ( 1. Single concern principle (SCP) : container 1개에는 단일 목적의 process 만 띄워주세요. 2. High observability principle (HOP) : Readiness / HealthCheck API 제공, log는 stdout, stderr 로. 3. Life-cycle conformance principle (LCP) : SIGTERM / SIGKILL 처리 필요, PreStop / PostStart 활용. 4. Image immutability principle (IIP) : Dev/ Test / Prod 환경에 모두 같은 Image 사용. 5. Process disposability principle (PDP) : State는 외부화하거나 분산시켜야 하며 App의 시작/종료는 신속하게. 6. Self-containment principle (S-CP) : 모든 dependency 는 build time에 image에 넣고, 환경에 따라 다른 정보는 Run time에 configMap, Storage에 넣어주세요. 7. Runtime confinement principle (RCP) : container app이 필요한 CPU / MEM / Disk 에 대해 고려되어야 함. https://kubernetes.io/blog/2018/03/principles-of-container-app-design/
  • 20. High observability principle (HOP) Readiness / HealthCheck API 제공, log는 stdout, stderr 로 뿌려주세요. 1) 컨테이너가 살았는지? 죽었는지? 서비스 트래픽을 보내 줘도 되는지? 안되는지? -> 오케스트레이터가 컨테이너 앱의 상태를 알 수 있는 API가 필요. 2) 컨테이너 안에서 파일로 로그를 쌓으면? -> 오케스트레이터 입장에선 아무런 로그도 남기지 않는 앱 (관리 X, 디버깅 기능 X) -> 컨테이너 종료 시 로그 유실 -> 해당 컨테이너는 다른 노드에 가서 뜸 : 추적 어려움 -> 로그 크기가 커졌을 때 Disk Full : Host 전체 컨테이너 장애 3) log 를 stdout / stderr 로 보낸 경우 -> 외부 로그 수집시스템과의 연계(플랫폼에서 제공) : ELK Stack 등 -> 오케스트레이터에서 자동으로 logrotate 실행 -> json parsing 등 드라이버 제공도 해줌 -> 오케스트레이터의 debugging 기능 이용 가능
  • 21. Life-cycle conformance principle (LCP) 1) SIGTERM / SIGKILL 처리 필요 - 컨테이너는 종료 될 때 SIGTERM 을 받고 SIGKILL 을 통해 종료. - 이때 SIGTERM에 대한 처리가 Application 에 구현되어 있지 않으면 처리하던 Task 를 유실하고 그냥 종료. - 무중단 배포를 위한 필수 구현 사항.
  • 22. Life-cycle conformance principle (LCP) 2) K8s의 경우 PreStop / PostStart 활용. <- graceful shutdown command
  • 23. Container Orchestrator 만으로는 부족 Application의 Cloud Native로의 변화 필요 개발자들의 적극적인 참여 조직 문화, 일하는 방식의 변화 필요