SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Kakao Container Cloud, DKOS
정원천 (hardy.jung)
카카오 클라우드디플로이셀
hardy.jung@kakaocorp.com
DKOS 란?
• Kakao Container Cloud for mesos, kubernetes
• Integration with Kakao Infra
• Custom Feature
DKOS 를 사용중인 서비스들
DKOS 사용현황
• 사용중인 클러스터 : 700개
• 전체 노드 수 : 8000대
• 전체 컨테이너 개수 : 16000개
• 최대 클러스터 : 1600대
• 최대 TPS(http, https) : x0000
DKOS 운영사례 : 노드 장애 극복
Container a
Container b
Container c
Container d
• 원인
• VM 커널패닉
• 하이퍼바이저 장애 : disk, power, ….
• 네트워크 장애
Container a
Container b
Node 1
Node 2
Node 3
DKOS 운영사례 : IDC간 네트워크 장애
IDC A IDC B
Master
Master
Master
Worker Worker
Worker
Worker
Worker
• 장애 도중에는 문제없이 운영
DKOS 운영사례 : IDC간 네트워크 장애
IDC A IDC B
Master
Master
Master
Worker Worker
Worker
Shutdown
Worker
Shutdown
Worker
Shutdonw
• 장애 복구 후 Worker 노드들 Shutdown
DKOS 운영사례 : IDC간 네트워크 장애
IDC A IDC B
Master
Master
Master
Worker Worker
Worker
Shutdown
Worker
Shutdown
Worker
Shutdonw
• Master에서 복구된 worker들도 shutdown 명령
• Worker가 down됨.
• Systemd의 Restart Policy가 OnFailure
Shutdown
Shutdown
Shutdown
DKOS 운영사례 : 다음 뉴스 기존 시스템을 컨테이너로 이전
• 가벼운 서비스부터 시작
• 개발자들의 의지 & 리더의 지원
• 새로운 시스템에 대한 학습 필요 : 성능, 안정성, 편의성 등에 대한
고민
• 레거시 분석 : 히스토리를 모르는 경우
• 컨테이너 오케스트레이터의 부족한 부분 : Jenkins를 통한 배포
DKOS 운영사례 : 컨테이너 성능 https 처리
• 요구사항 : 10,000 ~ 100,000 TPS
DKOS Worker
DKOS Worker
DKOS Worker
DKOS LoadBalancer
DKOS LoadBalancer
물리장비 LoadBalancer
SSL Offloading ?
DKOS 운영사례 : 컨테이너 성능 https 처리
• 비용절감
DKOS Worker
DKOS Worker
DKOS Worker
DKOS LoadBalancer
DKOS LoadBalancer
물리장비 LoadBalancer
SSL Offloading
L3DSR(Direct Server Return)
DKOS 운영사례 : 컨테이너 성능 2017년 11월 15일 포항지진
DKOS 운영사례 : 컨테이너 성능 2017년 11월 15일 포항지진
• 순간 트래픽 5배 급증
DKOS 운영사례 : 탄력적인 자원 사용 2017 신입 개발자 공채
DKOS 운영사례 : 카카오 번역 서비스 오픈
• AI 연구자들로 이루어진 조직
• 오픈 일정 단축
• 고민 : 응답속도/처리량/배포자동화/장애대응
DKOS 운영 사례 : 오토스케일링
DKOS 운영 사례 : 카카오 T 오토스케일링
What is Cloud Native
• Containerized
• Each part (applications, processes, etc) is packaged in its own container.
This facilitates reproducibility, transparency, and resource isolation.
• Dynamically orchestrated
• Containers are actively scheduled and managed to optimize resource
utilization.
• Microservices oriented
• Applications are segmented into microservices. This significantly increases
the overall agility and maintainability of applications.
Cloud Native 앱 : log 를 로컬 디스크에 기록했을 경우
• 컨테이너 종료시 로그 유실
• 로그 크기가 커졌을때 Disk Full
Cloud Native 앱 : log 를 stdout으로 보낸 경우
• 오케스트레이터에서 자동으로 logrotate 실행
• 외부 로그 수집시스템과의 연계 : ELK Stack 등
Cloud Native 앱 : 전통적인 배포
Worker
Old App
Old App
Worker
• 일반 구성 : 배포 전
물리 LB
Cloud Native 앱 : 전통적인 배포
Worker
Old App
Old App
Worker
• 일반 구성 : 배포 중
물리 LB
New App
New App
Cloud Native 앱 : 전통적인 배포
Worker
Old App
Old App
Worker
• 일반 구성 : 배포 후
물리 LB
New App
New App
종료
종료
Cloud Native 앱 : 무중단 배포를 위한 SIGTERM 처리
DKOS LB
DKOS Worker
container
container
Worker
• 배포 전
Cloud Native 앱 : 앱 배포시 lb 동작
DKOS LB
DKOS Worker
container
container
container
Worker
container
• 배포중
• orchestrator
- 신규 컨테이너 생성
- Healthcheck 시작
• DKOS LB(Haproxy, Nginx)
Cloud Native 앱 : 앱 배포시 lb 동작
DKOS LB
DKOS Worker
container
container
container
Worker
container
• 배포중
SIGTERM
SIGTERM
• orchestrator
- 신규 컨테이너 healthcheck
성공
- 기존 컨테이너에 SIGTERM
• DKOS LB(Haproxy, Nginx)
- backend 에 신규 컨테이너
등록
- backend에서 기존 컨테이
너 disabled
Cloud Native 앱 : 앱 배포시 lb 동작
DKOS LB
DKOS Worker
container
container
container
Worker
container
SIGKILL
SIGKILL
• 배포중
• orchestrator
- 지정된 시간 후에도 기존
컨테이너가 죽지않고 살아 있
을때 SIGKILL로 종료
• DKOS LB(Haproxy , Nginx)
- 기존 컨테이너를 backend
에서 제외
Cloud Native 앱 : 앱 배포시 lb 동작
DKOS LB
DKOS Worker
container
Worker
container
• 배포 후
Cloud Native Devops를 위해 필요한 것들
• 컨테이너 오케스트레이터만으로는 부족
• Application의 Cloud Native로의 변화
• 개발자들의 적극적인 참여
Q&A
감사합니다

Contenu connexe

Tendances

Terraform introduction
Terraform introductionTerraform introduction
Terraform introductionJason Vance
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Akira Shimosako
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
Serverless with IAC - terraform과 cloudformation 비교
Serverless with IAC - terraform과 cloudformation 비교Serverless with IAC - terraform과 cloudformation 비교
Serverless with IAC - terraform과 cloudformation 비교재현 신
 
Comprehensive Terraform Training
Comprehensive Terraform TrainingComprehensive Terraform Training
Comprehensive Terraform TrainingYevgeniy Brikman
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdfssuserf8b8bd1
 
VMware Cloud on AWSネットワーク詳細解説
VMware Cloud on AWSネットワーク詳細解説VMware Cloud on AWSネットワーク詳細解説
VMware Cloud on AWSネットワーク詳細解説Noritaka Kuroiwa
 
いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計Serverworks Co.,Ltd.
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話ushiboy
 
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAn introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAmazon Web Services
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
MySQLからPostgreSQLへのマイグレーションのハマリ所
MySQLからPostgreSQLへのマイグレーションのハマリ所MySQLからPostgreSQLへのマイグレーションのハマリ所
MySQLからPostgreSQLへのマイグレーションのハマリ所Makoto Kaga
 
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration ServiceAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB Amazon Web Services Japan
 

Tendances (20)

Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introduction
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
Serverless with IAC - terraform과 cloudformation 비교
Serverless with IAC - terraform과 cloudformation 비교Serverless with IAC - terraform과 cloudformation 비교
Serverless with IAC - terraform과 cloudformation 비교
 
Comprehensive Terraform Training
Comprehensive Terraform TrainingComprehensive Terraform Training
Comprehensive Terraform Training
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
 
VMware Cloud on AWSネットワーク詳細解説
VMware Cloud on AWSネットワーク詳細解説VMware Cloud on AWSネットワーク詳細解説
VMware Cloud on AWSネットワーク詳細解説
 
いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話
 
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAn introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
MySQLからPostgreSQLへのマイグレーションのハマリ所
MySQLからPostgreSQLへのマイグレーションのハマリ所MySQLからPostgreSQLへのマイグレーションのハマリ所
MySQLからPostgreSQLへのマイグレーションのハマリ所
 
AWS Amplify 入門
AWS Amplify 入門AWS Amplify 入門
AWS Amplify 入門
 
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
 
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
 

Similaire à Krnet2018 kakao container cloud dkos

Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
[TeamStudy-022] Docker
[TeamStudy-022] Docker[TeamStudy-022] Docker
[TeamStudy-022] DockerWonjun Hwang
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례NAVER LABS
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기Ian Choi
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Sangcheol Hwang
 
[OpenInfra Days Korea 2018] (Track 1) From OpenStack to cloud native
[OpenInfra Days Korea 2018] (Track 1) From OpenStack to cloud native[OpenInfra Days Korea 2018] (Track 1) From OpenStack to cloud native
[OpenInfra Days Korea 2018] (Track 1) From OpenStack to cloud nativeOpenStack Korea Community
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
1. Docker Network (1)
1. Docker Network (1)1. Docker Network (1)
1. Docker Network (1)DEVELOPER.NET
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine
 
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDXOpenStack Korea Community
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestrationNAVER D2
 
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solutionOpenStack Korea Community
 
Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1WhaTap Labs
 
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
 
Open stack summit_barcelona_보고서
Open stack summit_barcelona_보고서Open stack summit_barcelona_보고서
Open stack summit_barcelona_보고서Yongyoon Shin
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)용호 최
 

Similaire à Krnet2018 kakao container cloud dkos (20)

Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
[TeamStudy-022] Docker
[TeamStudy-022] Docker[TeamStudy-022] Docker
[TeamStudy-022] Docker
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
 
[OpenInfra Days Korea 2018] (Track 1) From OpenStack to cloud native
[OpenInfra Days Korea 2018] (Track 1) From OpenStack to cloud native[OpenInfra Days Korea 2018] (Track 1) From OpenStack to cloud native
[OpenInfra Days Korea 2018] (Track 1) From OpenStack to cloud native
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
1. Docker Network (1)
1. Docker Network (1)1. Docker Network (1)
1. Docker Network (1)
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestration
 
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
 
Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1
 
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
 
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
 
Open stack summit_barcelona_보고서
Open stack summit_barcelona_보고서Open stack summit_barcelona_보고서
Open stack summit_barcelona_보고서
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)
 

Krnet2018 kakao container cloud dkos

  • 1. Kakao Container Cloud, DKOS 정원천 (hardy.jung) 카카오 클라우드디플로이셀 hardy.jung@kakaocorp.com
  • 2. DKOS 란? • Kakao Container Cloud for mesos, kubernetes • Integration with Kakao Infra • Custom Feature
  • 3. DKOS 를 사용중인 서비스들
  • 4. DKOS 사용현황 • 사용중인 클러스터 : 700개 • 전체 노드 수 : 8000대 • 전체 컨테이너 개수 : 16000개 • 최대 클러스터 : 1600대 • 최대 TPS(http, https) : x0000
  • 5. DKOS 운영사례 : 노드 장애 극복 Container a Container b Container c Container d • 원인 • VM 커널패닉 • 하이퍼바이저 장애 : disk, power, …. • 네트워크 장애 Container a Container b Node 1 Node 2 Node 3
  • 6. DKOS 운영사례 : IDC간 네트워크 장애 IDC A IDC B Master Master Master Worker Worker Worker Worker Worker • 장애 도중에는 문제없이 운영
  • 7. DKOS 운영사례 : IDC간 네트워크 장애 IDC A IDC B Master Master Master Worker Worker Worker Shutdown Worker Shutdown Worker Shutdonw • 장애 복구 후 Worker 노드들 Shutdown
  • 8. DKOS 운영사례 : IDC간 네트워크 장애 IDC A IDC B Master Master Master Worker Worker Worker Shutdown Worker Shutdown Worker Shutdonw • Master에서 복구된 worker들도 shutdown 명령 • Worker가 down됨. • Systemd의 Restart Policy가 OnFailure Shutdown Shutdown Shutdown
  • 9. DKOS 운영사례 : 다음 뉴스 기존 시스템을 컨테이너로 이전 • 가벼운 서비스부터 시작 • 개발자들의 의지 & 리더의 지원 • 새로운 시스템에 대한 학습 필요 : 성능, 안정성, 편의성 등에 대한 고민 • 레거시 분석 : 히스토리를 모르는 경우 • 컨테이너 오케스트레이터의 부족한 부분 : Jenkins를 통한 배포
  • 10. DKOS 운영사례 : 컨테이너 성능 https 처리 • 요구사항 : 10,000 ~ 100,000 TPS DKOS Worker DKOS Worker DKOS Worker DKOS LoadBalancer DKOS LoadBalancer 물리장비 LoadBalancer SSL Offloading ?
  • 11. DKOS 운영사례 : 컨테이너 성능 https 처리 • 비용절감 DKOS Worker DKOS Worker DKOS Worker DKOS LoadBalancer DKOS LoadBalancer 물리장비 LoadBalancer SSL Offloading L3DSR(Direct Server Return)
  • 12. DKOS 운영사례 : 컨테이너 성능 2017년 11월 15일 포항지진
  • 13. DKOS 운영사례 : 컨테이너 성능 2017년 11월 15일 포항지진 • 순간 트래픽 5배 급증
  • 14. DKOS 운영사례 : 탄력적인 자원 사용 2017 신입 개발자 공채
  • 15. DKOS 운영사례 : 카카오 번역 서비스 오픈 • AI 연구자들로 이루어진 조직 • 오픈 일정 단축 • 고민 : 응답속도/처리량/배포자동화/장애대응
  • 16. DKOS 운영 사례 : 오토스케일링
  • 17. DKOS 운영 사례 : 카카오 T 오토스케일링
  • 18. What is Cloud Native • Containerized • Each part (applications, processes, etc) is packaged in its own container. This facilitates reproducibility, transparency, and resource isolation. • Dynamically orchestrated • Containers are actively scheduled and managed to optimize resource utilization. • Microservices oriented • Applications are segmented into microservices. This significantly increases the overall agility and maintainability of applications.
  • 19. Cloud Native 앱 : log 를 로컬 디스크에 기록했을 경우 • 컨테이너 종료시 로그 유실 • 로그 크기가 커졌을때 Disk Full
  • 20. Cloud Native 앱 : log 를 stdout으로 보낸 경우 • 오케스트레이터에서 자동으로 logrotate 실행 • 외부 로그 수집시스템과의 연계 : ELK Stack 등
  • 21. Cloud Native 앱 : 전통적인 배포 Worker Old App Old App Worker • 일반 구성 : 배포 전 물리 LB
  • 22. Cloud Native 앱 : 전통적인 배포 Worker Old App Old App Worker • 일반 구성 : 배포 중 물리 LB New App New App
  • 23. Cloud Native 앱 : 전통적인 배포 Worker Old App Old App Worker • 일반 구성 : 배포 후 물리 LB New App New App 종료 종료
  • 24. Cloud Native 앱 : 무중단 배포를 위한 SIGTERM 처리 DKOS LB DKOS Worker container container Worker • 배포 전
  • 25. Cloud Native 앱 : 앱 배포시 lb 동작 DKOS LB DKOS Worker container container container Worker container • 배포중 • orchestrator - 신규 컨테이너 생성 - Healthcheck 시작 • DKOS LB(Haproxy, Nginx)
  • 26. Cloud Native 앱 : 앱 배포시 lb 동작 DKOS LB DKOS Worker container container container Worker container • 배포중 SIGTERM SIGTERM • orchestrator - 신규 컨테이너 healthcheck 성공 - 기존 컨테이너에 SIGTERM • DKOS LB(Haproxy, Nginx) - backend 에 신규 컨테이너 등록 - backend에서 기존 컨테이 너 disabled
  • 27. Cloud Native 앱 : 앱 배포시 lb 동작 DKOS LB DKOS Worker container container container Worker container SIGKILL SIGKILL • 배포중 • orchestrator - 지정된 시간 후에도 기존 컨테이너가 죽지않고 살아 있 을때 SIGKILL로 종료 • DKOS LB(Haproxy , Nginx) - 기존 컨테이너를 backend 에서 제외
  • 28. Cloud Native 앱 : 앱 배포시 lb 동작 DKOS LB DKOS Worker container Worker container • 배포 후
  • 29. Cloud Native Devops를 위해 필요한 것들 • 컨테이너 오케스트레이터만으로는 부족 • Application의 Cloud Native로의 변화 • 개발자들의 적극적인 참여
  • 30. Q&A