SlideShare a Scribd company logo
1 of 26
Kubernetes Autoscaling
2018.8
콘텐츠연합플랫폼
김철구
Who am I?
콘텐츠연합플랫폼 DevOps Engineer
- Cloud System 운영
- Cloud 이전 및 MSA 설계
- CI/CD process 도입 및 운영
Email: cgkim@captv.co.kr
Infra History
• Application의 확장 → pod scaling
• 효율적인 Container 운영
• 지속적으로 변하는 사용자 workload 처리
Autoscaling
Kubernetes Autoscaling 구성요소
Horizontal Pod Autoscaler(HPA)
Vertical Pod Autoscaler(VPA)
Cluster Autoscaler(CA)
HPA(Horizontal Pod Autoscaler)
Horizontal Pod Autoscaler(HPA)
• Pod replica의 갯수를 변경하여 scaling.
• CPU와 memory의 metrics를 base로 하여 scaling을 trigger.
• Multiple metrics, Custom metrics, external metrics를 base로
사용하는 것도 가능.
HPA workflow
MetricsHPA
Deployment/RC
1. Check metrics
2. 지정 임계치 초과
3. replica 개수 변경
4. pod 개수를 scaling
HPA에 대해서 알아둘 것들
• 기본 HPA sync 주기는 30초.
→ controller manager의 --horizontal-pod-autoscaler-sync-period flag로 변경 가능.
• HPA는 metrics가 안정되도록 HPA event 후에 3분을 기다린 후에 scale-up event를 발생시킨다.
→ kube-controller-manage의 --horizontal-pod-autoscaler-upscale-delay flag로 변경 가능.
• HPA는 replica의 개수가 요동치는 변동을 겪지 않도록 HPA event 후에 5분을 기다린 후에 scale-
down event를 발생 시킨다.
→ kube-controller-manage의 --horizontal-pod-autoscaler-downscale-delay flag로 변경 가능.
• HPA는 Deployment object에서 최적으로 동작한다. HPA에서 target으로 설정된 Deployment의
replica를 직접적으로 수정하는 것은 바람직 하지 않다.
Custom Metrics를 사용하는 HPA
• autoscaling/v2alpha1 API object를 사용.
• 별도의 configuration 과정이 다수 필요.
• GKE에서는 Stackdriver adapter를 정식으로 지원.
• 이외의 환경에서는 Prometheus adapter를 사용해야 하지만 개발 상태는 초기 상
태.
• application에서 Prometheus format으로 custom metrics를 expose 해야 한다.
VPA(Vertical Pod Autoscaler)
Vertical Pod Autoscaler(VPA)
• Pod의 CPU와 memory를 변경하여 할당.
• Pod의 restart되어 resource 변경.
• OOM(Out Of Memory) event에 반응.
• Pod에 할당할 수 있는 Min/Max resource를 설정 가능.
• 현재 alpha 개발 상태.
VPA workflow
MetricsVPA
Deployment/RC
1. Check metrics
2. 지정 임계치 초과
3. CPU/Memory 값 변경
4. Resource 할당을 scaling(Restart)
VPA에 대해서 알아둘 것들
• VPA의 metrics check 간격은 10초.
• VPA의 변경으로 인해 모든 Pod들이 restart되는 것을 방지하기 위해 Pods Distribution Budget(PDB)
가 반영.
• Pod를 restart하지 않고 resource를 변경할 수 없음.
→ Pod는 stop된 후에 새로 할당된 resource들을 기반으로 rescheduling된다.
• VPA와 HPA는 아직 서로 호환되지 않으며 동일한 pod에서 동작되지 않는다.
→ cluster 내에서 이 둘을 사용하기 위해서는 구성할 때 사용범위를 확실하게 분리해야 한다.
• VPA는 resource request만 조정하고 limit은 설정하지 않으므로 오동작하는 application이 resource
를 잠식할 수 있음에 주의.
CA(Cluster Autoscaler)
Cluster Autoscaler(CA)
• Pending pod들을 기반으로 cluster node들을 scaling.
• Cloud provider와 통신하여 node 증가 또는 idle node들의 회수를
진행
• 현재 GCP, AWS, Azure를 지원.
• Kubernetes 1.8 version에서 CA 1.0(G.A)이 release.
CA workflow
CA
Pending
NODE
CA에 대해서 알아둘 것들
• CA가 pending pod들을 check하는 간격은 10초이며 30초마다 필요한 추
가 node를 계산.
• CA는 사용률이 높지 않은 node들의 scale down은 10분을 대기하고 수행.
• Annotation의 "cluster-autoscaler.kubernetes.io/safe-to-evict": "true".
→ 적절히 사용. 남용하여 대다수의 pod들이 사용되면 scale down에 대한
flexibility가 떨어짐.
• scale down에서 pod들이 quorum을 유지하도록 PodDisruptionBudgets를
사용.
Autoscaler 결합 workflow
CA
3. 추가 node 요청
4. Cluster 상에 추가
node를 join
Pending
NODE
Kubernetes
HPA VPA
1. Pod resource 변경
One more thing
실질적인 동작
• CA에서 node를 join 시키는데는 시간이 발생.
→ AWS + kops 환경에서는 5분 정도의 시간이 발생.
• Node resource가 여유가 있다면 HPA, VPA의 scaling은 수십초 내에 완료.
Solution?
Priority and Preemption
• Kubernetes 1.8에서 alpha feature로 소개.
• 1.11에서 beta로 변경, 기본적으로 enable.
Demo
Kubernetes
Q&A
감사합니다.

More Related Content

What's hot

Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3SANG WON PARK
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWSKRUG - AWS한국사용자모임
 
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)SANG WON PARK
 
Alluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-CloudAlluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-CloudJinwook Chung
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
카카오 전사 모니터링/로깅/알람플랫폼 KEMI
카카오 전사 모니터링/로깅/알람플랫폼 KEMI카카오 전사 모니터링/로깅/알람플랫폼 KEMI
카카오 전사 모니터링/로깅/알람플랫폼 KEMIissac lim
 
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...OpenStack Korea Community
 
네이버 클라우드 플랫폼의 컨테이너 기술 로드맵 (NBP 박기은 CTO) - NAVER CLOUD PLATFORM in [2018 All A...
네이버 클라우드 플랫폼의 컨테이너 기술 로드맵 (NBP 박기은 CTO) - NAVER CLOUD PLATFORM in [2018 All A...네이버 클라우드 플랫폼의 컨테이너 기술 로드맵 (NBP 박기은 CTO) - NAVER CLOUD PLATFORM in [2018 All A...
네이버 클라우드 플랫폼의 컨테이너 기술 로드맵 (NBP 박기은 CTO) - NAVER CLOUD PLATFORM in [2018 All A...NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
Streaming platform Kafka in SK planet
Streaming platform Kafka in SK planetStreaming platform Kafka in SK planet
Streaming platform Kafka in SK planetByeongsu Kang
 
Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트SANG WON PARK
 
Lablupconf keynote
Lablupconf keynoteLablupconf keynote
Lablupconf keynoteLablup Inc.
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without DockerfileWon-Chon Jung
 
AWSKRUG DS 2020/12 - Let the Airflow in AWS
AWSKRUG DS 2020/12 - Let the Airflow in AWSAWSKRUG DS 2020/12 - Let the Airflow in AWS
AWSKRUG DS 2020/12 - Let the Airflow in AWSWoong Seok Kang
 
[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의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3Keeyong Han
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )SANG WON PARK
 
Cloudera Impala 1.0
Cloudera Impala 1.0Cloudera Impala 1.0
Cloudera Impala 1.0Minwoo Kim
 
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930Jaikwang Lee
 

What's hot (20)

Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
 
Alluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-CloudAlluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-Cloud
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
카카오 전사 모니터링/로깅/알람플랫폼 KEMI
카카오 전사 모니터링/로깅/알람플랫폼 KEMI카카오 전사 모니터링/로깅/알람플랫폼 KEMI
카카오 전사 모니터링/로깅/알람플랫폼 KEMI
 
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
 
네이버 클라우드 플랫폼의 컨테이너 기술 로드맵 (NBP 박기은 CTO) - NAVER CLOUD PLATFORM in [2018 All A...
네이버 클라우드 플랫폼의 컨테이너 기술 로드맵 (NBP 박기은 CTO) - NAVER CLOUD PLATFORM in [2018 All A...네이버 클라우드 플랫폼의 컨테이너 기술 로드맵 (NBP 박기은 CTO) - NAVER CLOUD PLATFORM in [2018 All A...
네이버 클라우드 플랫폼의 컨테이너 기술 로드맵 (NBP 박기은 CTO) - NAVER CLOUD PLATFORM in [2018 All A...
 
Streaming platform Kafka in SK planet
Streaming platform Kafka in SK planetStreaming platform Kafka in SK planet
Streaming platform Kafka in SK planet
 
Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트
 
Lablupconf keynote
Lablupconf keynoteLablupconf keynote
Lablupconf keynote
 
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without Dockerfile
 
AWSKRUG DS 2020/12 - Let the Airflow in AWS
AWSKRUG DS 2020/12 - Let the Airflow in AWSAWSKRUG DS 2020/12 - Let the Airflow in AWS
AWSKRUG DS 2020/12 - Let the Airflow in AWS
 
[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의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
 
Cloudera Impala 1.0
Cloudera Impala 1.0Cloudera Impala 1.0
Cloudera Impala 1.0
 
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
 
Apache Kylin
Apache KylinApache Kylin
Apache Kylin
 

Similar to Kubernetes autoscaling 201808

K8s in action chap15
K8s in action chap15K8s in action chap15
K8s in action chap15Sunggon Song
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례SONG INSEOB
 
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...Cloud-Barista Community
 
AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)I Goo Lee.
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료Opennaru, inc.
 
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
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Steve Min
 
resource on openstack
 resource on openstack resource on openstack
resource on openstackjieun kim
 
Cloud-Barista 제4차 오픈 컨퍼런스 : CB-Larva - 멀티클라우드 인프라 및 응용을 위한 네트워킹 (Networking f...
Cloud-Barista 제4차 오픈 컨퍼런스 : CB-Larva - 멀티클라우드 인프라 및 응용을 위한 네트워킹 (Networking f...Cloud-Barista 제4차 오픈 컨퍼런스 : CB-Larva - 멀티클라우드 인프라 및 응용을 위한 네트워킹 (Networking f...
Cloud-Barista 제4차 오픈 컨퍼런스 : CB-Larva - 멀티클라우드 인프라 및 응용을 위한 네트워킹 (Networking f...Cloud-Barista Community
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista Community
 
BSP 사례중심발표 베스핀글로벌_신인철_SA PRO
BSP 사례중심발표 베스핀글로벌_신인철_SA PROBSP 사례중심발표 베스핀글로벌_신인철_SA PRO
BSP 사례중심발표 베스핀글로벌_신인철_SA PROIn Chul Shin
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약kidoki
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdfJaesuk Ahn
 
가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptx가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptxByungho Lee
 
[찾아가는세미나] 클라우드 데이터 가상화솔루션
[찾아가는세미나] 클라우드 데이터 가상화솔루션[찾아가는세미나] 클라우드 데이터 가상화솔루션
[찾아가는세미나] 클라우드 데이터 가상화솔루션해은 최
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)Brian Hong
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈Amazon Web Services Korea
 

Similar to Kubernetes autoscaling 201808 (20)

K8s in action chap15
K8s in action chap15K8s in action chap15
K8s in action chap15
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
 
AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료
 
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
 
[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트
[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트
[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)
 
resource on openstack
 resource on openstack resource on openstack
resource on openstack
 
Cloud-Barista 제4차 오픈 컨퍼런스 : CB-Larva - 멀티클라우드 인프라 및 응용을 위한 네트워킹 (Networking f...
Cloud-Barista 제4차 오픈 컨퍼런스 : CB-Larva - 멀티클라우드 인프라 및 응용을 위한 네트워킹 (Networking f...Cloud-Barista 제4차 오픈 컨퍼런스 : CB-Larva - 멀티클라우드 인프라 및 응용을 위한 네트워킹 (Networking f...
Cloud-Barista 제4차 오픈 컨퍼런스 : CB-Larva - 멀티클라우드 인프라 및 응용을 위한 네트워킹 (Networking f...
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
 
BSP 사례중심발표 베스핀글로벌_신인철_SA PRO
BSP 사례중심발표 베스핀글로벌_신인철_SA PROBSP 사례중심발표 베스핀글로벌_신인철_SA PRO
BSP 사례중심발표 베스핀글로벌_신인철_SA PRO
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
 
가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptx가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptx
 
[찾아가는세미나] 클라우드 데이터 가상화솔루션
[찾아가는세미나] 클라우드 데이터 가상화솔루션[찾아가는세미나] 클라우드 데이터 가상화솔루션
[찾아가는세미나] 클라우드 데이터 가상화솔루션
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
 

Kubernetes autoscaling 201808

  • 2. Who am I? 콘텐츠연합플랫폼 DevOps Engineer - Cloud System 운영 - Cloud 이전 및 MSA 설계 - CI/CD process 도입 및 운영 Email: cgkim@captv.co.kr
  • 3.
  • 5. • Application의 확장 → pod scaling • 효율적인 Container 운영 • 지속적으로 변하는 사용자 workload 처리 Autoscaling
  • 6. Kubernetes Autoscaling 구성요소 Horizontal Pod Autoscaler(HPA) Vertical Pod Autoscaler(VPA) Cluster Autoscaler(CA)
  • 8. Horizontal Pod Autoscaler(HPA) • Pod replica의 갯수를 변경하여 scaling. • CPU와 memory의 metrics를 base로 하여 scaling을 trigger. • Multiple metrics, Custom metrics, external metrics를 base로 사용하는 것도 가능.
  • 9. HPA workflow MetricsHPA Deployment/RC 1. Check metrics 2. 지정 임계치 초과 3. replica 개수 변경 4. pod 개수를 scaling
  • 10. HPA에 대해서 알아둘 것들 • 기본 HPA sync 주기는 30초. → controller manager의 --horizontal-pod-autoscaler-sync-period flag로 변경 가능. • HPA는 metrics가 안정되도록 HPA event 후에 3분을 기다린 후에 scale-up event를 발생시킨다. → kube-controller-manage의 --horizontal-pod-autoscaler-upscale-delay flag로 변경 가능. • HPA는 replica의 개수가 요동치는 변동을 겪지 않도록 HPA event 후에 5분을 기다린 후에 scale- down event를 발생 시킨다. → kube-controller-manage의 --horizontal-pod-autoscaler-downscale-delay flag로 변경 가능. • HPA는 Deployment object에서 최적으로 동작한다. HPA에서 target으로 설정된 Deployment의 replica를 직접적으로 수정하는 것은 바람직 하지 않다.
  • 11. Custom Metrics를 사용하는 HPA • autoscaling/v2alpha1 API object를 사용. • 별도의 configuration 과정이 다수 필요. • GKE에서는 Stackdriver adapter를 정식으로 지원. • 이외의 환경에서는 Prometheus adapter를 사용해야 하지만 개발 상태는 초기 상 태. • application에서 Prometheus format으로 custom metrics를 expose 해야 한다.
  • 13. Vertical Pod Autoscaler(VPA) • Pod의 CPU와 memory를 변경하여 할당. • Pod의 restart되어 resource 변경. • OOM(Out Of Memory) event에 반응. • Pod에 할당할 수 있는 Min/Max resource를 설정 가능. • 현재 alpha 개발 상태.
  • 14. VPA workflow MetricsVPA Deployment/RC 1. Check metrics 2. 지정 임계치 초과 3. CPU/Memory 값 변경 4. Resource 할당을 scaling(Restart)
  • 15. VPA에 대해서 알아둘 것들 • VPA의 metrics check 간격은 10초. • VPA의 변경으로 인해 모든 Pod들이 restart되는 것을 방지하기 위해 Pods Distribution Budget(PDB) 가 반영. • Pod를 restart하지 않고 resource를 변경할 수 없음. → Pod는 stop된 후에 새로 할당된 resource들을 기반으로 rescheduling된다. • VPA와 HPA는 아직 서로 호환되지 않으며 동일한 pod에서 동작되지 않는다. → cluster 내에서 이 둘을 사용하기 위해서는 구성할 때 사용범위를 확실하게 분리해야 한다. • VPA는 resource request만 조정하고 limit은 설정하지 않으므로 오동작하는 application이 resource 를 잠식할 수 있음에 주의.
  • 17. Cluster Autoscaler(CA) • Pending pod들을 기반으로 cluster node들을 scaling. • Cloud provider와 통신하여 node 증가 또는 idle node들의 회수를 진행 • 현재 GCP, AWS, Azure를 지원. • Kubernetes 1.8 version에서 CA 1.0(G.A)이 release.
  • 19. CA에 대해서 알아둘 것들 • CA가 pending pod들을 check하는 간격은 10초이며 30초마다 필요한 추 가 node를 계산. • CA는 사용률이 높지 않은 node들의 scale down은 10분을 대기하고 수행. • Annotation의 "cluster-autoscaler.kubernetes.io/safe-to-evict": "true". → 적절히 사용. 남용하여 대다수의 pod들이 사용되면 scale down에 대한 flexibility가 떨어짐. • scale down에서 pod들이 quorum을 유지하도록 PodDisruptionBudgets를 사용.
  • 20. Autoscaler 결합 workflow CA 3. 추가 node 요청 4. Cluster 상에 추가 node를 join Pending NODE Kubernetes HPA VPA 1. Pod resource 변경
  • 22. 실질적인 동작 • CA에서 node를 join 시키는데는 시간이 발생. → AWS + kops 환경에서는 5분 정도의 시간이 발생. • Node resource가 여유가 있다면 HPA, VPA의 scaling은 수십초 내에 완료. Solution? Priority and Preemption • Kubernetes 1.8에서 alpha feature로 소개. • 1.11에서 beta로 변경, 기본적으로 enable.
  • 23.
  • 25. Q&A