SlideShare une entreprise Scribd logo
1  sur  21
NAVER Cloud Platform Webinar
Run up!
NKS 에서 Cluster & Pods
autoscaling 적용하기
클라우드 솔루션 아키텍트 한지수
Contents
Run up!
- 네이버 클라우드 플랫폼의 Kubernetes Service
- Kubernetes Autoscaler 소개
Overview
NKS 에 Autoscaler 적용
- Cluster Autoscaling
- Horizontal Pod Autoscaling
Q & A
Wrap-up
NAVER CLOUD PLATFORM
Overview
Ncloud Kubernetes Service
Kubernetes Master (Control Plane)
Installation
&Addon Services
Dashboard CSI for Block Storage Weave Scope Ingress Nginx
Block Storage NAS Storage Load Balancer
API Server Scheduler
Replication
Controller
Endpoint
Controller
Node
Controller
Service
Controller
etcd
Controller-Manager
Kubelet Kube-proxy
Worker Node
ContainerContainer ContainerContainer
PodPod
Kubelet Kube-proxy
Worker Node
ContainerContainer ContainerContainer
PodPod
Kubelet Kube-proxy
Worker Node
ContainerContainer
ContainerContainer
PodPod
Related
NCP Service
NKS
Management
Scope
Customer
Management
Scope
Cluster AutoScaler
Cloud Log Analytics
Kubernetes Autoscaler
>> Cluster Autoscaler (CA)
K8S
API
Server
Cluster
Auto
Scaler
Check Capacity
Worker
NODE
Worker
NODE
Worker Node Pool
Worker
NODE
Ncloud Kubernetes Service
RequestNode
Additionalnodeallocated
• Pods 가 요청하는 리소스 증가에 따라 Worker Node 를 Scale-Out 하는 Scaler
• 클러스터에 설정한 최소/최대 Worker Node 개수 내에서 Scale-In / Out 진행
>> CA 동작 조건
• Worker Node 의 리소스 부족으로 Pods 가 생성되지 못하고 Pending 상태이고 Node
Pool 이 사용자가 정의한 최대 노드수에 도달하지 않은 경우 Scale-Out
• Cluster Autoscaler 가 10초마다 설정 조건에 따라 불필요한 노드를 확인, 10분 동안
조건에 해당할 경우 Scale Down 진행함
Kubernetes Autoscaler
>> Horizontal Pod Autoscaler (HPA)
Metric
Server
HPA
Worker
NODE
Worker
NODE
Worker Node Pool
Worker
NODE
Ncloud Kubernetes Service
• 구동중인 Pods 의 CPU 사용률을 기반으로 Pods 를 Scale-Out 하는 Scaler
• 확장/축소할 최소/최대 Pods 수량은 Pods 의 Deployment 에 의해 제어됨
>> HPA 동작 조건
• HPA 는 기본 30초 간격으로 Pods 의 사용량을 모니터링 하고 HPA 에 설정한 임계값을
초과할 경우 Pods 를 확장함 (기본 메트릭 허용 오차는 10%)
• Scale-out 이벤트 이후 3분 동안 대기하고 Scale-in 이벤트 이후 5분 동안 대기함
Pod Pod Pod Pod
Deployment
Auto Scaling Group
ReplicaSet
Get Resource Metric
Check Pods Metric
Threshold is met
NAVER CLOUD PLATFORM
CA를 활용한
Worker Node Auto Scaling
Cluster Autoscaler 설치
0. Helm 설치
• https://docs.ncloud.com/ko/nks/nks-1-2.html#helm-설치하기 참고하여 Helm 사용 환경 구성
1. Ncloud helm repository 추가
# helm repo add ncloud https://navercloudplatformdeveloper.github.io/helm-charts
# helm search autoscaler
Cluster Autoscaler 설치
2. Cluster Autoscaler 설치
3. CA Pods 생성 확인
# helm --kubeconfig =$KUBE_CONFIG install ncloud/autoscaler 
--set min=1 
--set max=4 
--max-node-provision-time=15m0s 
--version 1.12.7-beta-201909190000
최소 유지할 Worker Node 개수
최대 확장할 Worker Node 개수
Node 가 확장되고 다음 Node 를 확장할 때까지의 대기시간
# kubectl --kubeconfig =$KUBE_CONFIG get pods -n kube-system | grep cluster-autoscaler
Cluster Autoscaler 설치
4. CA 상태 확인
# kubectl --kubeconfig =$KUBE_CONFIG get cm cluster-autoscaler-status -o yaml -n kube-system
Cluster Autoscaler Test – Scale Up
1. NKS Pods 생성 후 replicaset 확대
# kubectl --kubeconfig =$KUBE_CONFIG create deployment nginx --image=nginx
# kubectl --kubeconfig =$KUBE_CONFIG scale deployment nginx --replicas=100
Cluster Autoscaler Test – Scale Up
2. Cluster Autoscaler pods 로그 확인
# kubectl --kubeconfig =$KUBE_CONFIG logs $CA_PODS –n kube-system –f
Cluster Autoscaler Test – Scale Down
3. NKS Pods 생성 후 replicaset 축소
# kubectl --kubeconfig =$KUBE_CONFIG scale deployment nginx --replicas=10
Cluster Autoscaler Test – Scale Down
3. NKS Pods 생성 후 replicaset 축소
# kubectl --kubeconfig =$KUBE_CONFIG logs $CA_PODS –n kube-system –f
NAVER CLOUD PLATFORM
HPA 를 활용한
Pods Auto Scaling
Horizontal Pod Autoscaler 설정
1. HPA 설정을 적용할 pods 생성
# kubectl --kubeconfig =$KUBE_CONFIG run php-apache --image=k8s.gcr.io/hpa-example --requests=cpu=200m --limits=cpu=500m --expose --
port=80
최초 생성 시 200 밀리코어 (--request) 를 할당하고 추가로 리소스가 필요하다고 판단될 경우 최대 500 밀리코어 (--limits) 까지 추가로 할당을 요청하는 Pods
Limit : Pod 가 사용할 수 있는 최대 리소스
Requests: Pod 가 구동되기 위한 요청 리소스
cpu request = 200m cpu limit = 500m
Worker
NODE
1
2
200
500
1000
… … …
1
2
200
500
1000
… … …
Pod
컨테이너가 보장받을 수 있는 CPU 리소스
컨테이너가 최대로 사용할 수 있는 CPU 리소스
* 밀리코어 (Millicores)
K8S 에서 CPU 사용량을 측정하는 메트릭으로
1000 Core 로 분할된 CPU Core
ex) 코어가 4개인 Node 의 CPU 용량은 4000 m
단일 코어 (1000m) 의 1/10 을 사용할 경우 100m
Horizontal Pod Autoscaler 설정
2. Horizontal Pod Autoscaler 생성
# kubectl --kubeconfig =$KUBE_CONFIG autoscale deployment php-apache --cpu-percent=30 --min=1 --max=10
# kubectl --kubeconfig =$KUBE_CONFIG get hpa
현재 CPU 사용률 HPA 가 동작하는 Target CPU 사용률
Horizontal Pod Autoscaler 설정
3. HPA 설정한 Pod 에 부하 테스트
# kubectl --kubeconfig =$KUBE_CONFIG run --generator=run-pod/v1 -it --rm load-generator --image=busybox /bin/sh
If you don't see a command prompt, try pressing enter.
/ # while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done
4. HPA 동작 확인
Replica 증가에 따라 current 평균 CPU 사용률이 감소함
Horizontal Pod Autoscaler 설정
5. HPA 로그 확인
# kubectl --kubeconfig =$KUBE_CONFIG describe hpa $hpa_name
Horizontal Pod Autoscaler 설정
6. 부하 중지
# kubectl --kubeconfig =$KUBE_CONFIG describe hpa $hpa_name
The End of Document
Thank You

Contenu connexe

Tendances

Container Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondContainer Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyond
KubeAcademy
 
오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0
sprdd
 

Tendances (20)

[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
가상화 환경에서 배포 방법과 컨테이너 환경에서 CICD 차이점
가상화 환경에서 배포 방법과 컨테이너 환경에서 CICD 차이점가상화 환경에서 배포 방법과 컨테이너 환경에서 CICD 차이점
가상화 환경에서 배포 방법과 컨테이너 환경에서 CICD 차이점
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User Guide
 
[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 소개
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
 
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)
 
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Red Hat OpenStack 17 저자직강+스터디그룹_1주차Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
 
Container Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondContainer Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyond
 
주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0
 
K8s cluster autoscaler
K8s cluster autoscaler K8s cluster autoscaler
K8s cluster autoscaler
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 

Similaire à [온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용

쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
용호 최
 
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdfAmazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Byungho Lee
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
Amazon Web Services Korea
 

Similaire à [온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용 (20)

Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical Guide
 
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
EKS workshop 살펴보기
EKS workshop 살펴보기EKS workshop 살펴보기
EKS workshop 살펴보기
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
 
BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발
BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발
BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발
 
resource on openstack
 resource on openstack resource on openstack
resource on openstack
 
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
 
An overview of kubernetes & (very) simple live demo
An overview of kubernetes & (very) simple live demoAn overview of kubernetes & (very) simple live demo
An overview of kubernetes & (very) simple live demo
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
 
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
 
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
 
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdfAmazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
 

Plus de NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼

Plus de NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼 (20)

사물 인터넷을 넘어 지능형 사물 인터넷 시대로!_강지나 클라우드 솔루션 아키텍트
사물 인터넷을 넘어 지능형 사물 인터넷 시대로!_강지나 클라우드 솔루션 아키텍트사물 인터넷을 넘어 지능형 사물 인터넷 시대로!_강지나 클라우드 솔루션 아키텍트
사물 인터넷을 넘어 지능형 사물 인터넷 시대로!_강지나 클라우드 솔루션 아키텍트
 
1시간으로 끝내는 클라우드 개념_김민형 클라우드 솔루션 아키텍트
1시간으로 끝내는 클라우드 개념_김민형 클라우드 솔루션 아키텍트1시간으로 끝내는 클라우드 개념_김민형 클라우드 솔루션 아키텍트
1시간으로 끝내는 클라우드 개념_김민형 클라우드 솔루션 아키텍트
 
초개인화된 비즈니스 시대, 마이데이터 사업에 탑승하라! - 김민형 클라우드 솔루션 아키텍트
초개인화된 비즈니스 시대, 마이데이터 사업에 탑승하라! - 김민형 클라우드 솔루션 아키텍트초개인화된 비즈니스 시대, 마이데이터 사업에 탑승하라! - 김민형 클라우드 솔루션 아키텍트
초개인화된 비즈니스 시대, 마이데이터 사업에 탑승하라! - 김민형 클라우드 솔루션 아키텍트
 
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
 
[Solutions Showcase] 클라우드 기반의 강력한 자금세탁방지시스템 AMLXpress
[Solutions Showcase] 클라우드 기반의 강력한 자금세탁방지시스템 AMLXpress[Solutions Showcase] 클라우드 기반의 강력한 자금세탁방지시스템 AMLXpress
[Solutions Showcase] 클라우드 기반의 강력한 자금세탁방지시스템 AMLXpress
 
API Economy 시대가 온다 - 강지나 클라우드 솔루션 아키텍트
API Economy 시대가 온다 - 강지나 클라우드 솔루션 아키텍트API Economy 시대가 온다 - 강지나 클라우드 솔루션 아키텍트
API Economy 시대가 온다 - 강지나 클라우드 솔루션 아키텍트
 
[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트
[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트
[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트
 
온라인 교육 시리즈 - 클라우드 기반의 마이데이터사업 혁신(김민형 클라우드 솔루션 아키텍트)
온라인 교육 시리즈 - 클라우드 기반의 마이데이터사업 혁신(김민형 클라우드 솔루션 아키텍트) 온라인 교육 시리즈 - 클라우드 기반의 마이데이터사업 혁신(김민형 클라우드 솔루션 아키텍트)
온라인 교육 시리즈 - 클라우드 기반의 마이데이터사업 혁신(김민형 클라우드 솔루션 아키텍트)
 
[온라인교육시리즈] 클라우드 환경에서 발생하는 위협 탐지대응 방안 - 김동운 매니저
[온라인교육시리즈] 클라우드 환경에서 발생하는 위협 탐지대응 방안 - 김동운 매니저[온라인교육시리즈] 클라우드 환경에서 발생하는 위협 탐지대응 방안 - 김동운 매니저
[온라인교육시리즈] 클라우드 환경에서 발생하는 위협 탐지대응 방안 - 김동운 매니저
 
2021년 기술 트렌드 - 강지나 클라우드 솔루션 아키텍트
2021년 기술 트렌드 - 강지나 클라우드 솔루션 아키텍트2021년 기술 트렌드 - 강지나 클라우드 솔루션 아키텍트
2021년 기술 트렌드 - 강지나 클라우드 솔루션 아키텍트
 
[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트
[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트
[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트
 
클라우드 상에서의 효율적인 데이터 보관 방법 - 김민형 클라우드 솔루션 아키텍트
클라우드 상에서의 효율적인 데이터 보관 방법 - 김민형 클라우드 솔루션 아키텍트클라우드 상에서의 효율적인 데이터 보관 방법 - 김민형 클라우드 솔루션 아키텍트
클라우드 상에서의 효율적인 데이터 보관 방법 - 김민형 클라우드 솔루션 아키텍트
 
[온라인 교육시리즈] Pinpoint Cloud로 시작하는 어플리케이션 성능 모니터링 - 김민형 클라우드 솔루션 아키텍트
[온라인 교육시리즈] Pinpoint Cloud로 시작하는 어플리케이션 성능 모니터링 - 김민형 클라우드 솔루션 아키텍트[온라인 교육시리즈] Pinpoint Cloud로 시작하는 어플리케이션 성능 모니터링 - 김민형 클라우드 솔루션 아키텍트
[온라인 교육시리즈] Pinpoint Cloud로 시작하는 어플리케이션 성능 모니터링 - 김민형 클라우드 솔루션 아키텍트
 
포스트코로나시대에 주목받는 AI 서비스 - 네이버클라우드플랫폼 솔루션 아키텍트 강지나
포스트코로나시대에 주목받는 AI 서비스 - 네이버클라우드플랫폼 솔루션 아키텍트 강지나포스트코로나시대에 주목받는 AI 서비스 - 네이버클라우드플랫폼 솔루션 아키텍트 강지나
포스트코로나시대에 주목받는 AI 서비스 - 네이버클라우드플랫폼 솔루션 아키텍트 강지나
 
의료계에부는 언택트 바람 - 강지나 클라우드 솔루션 아키텍트
의료계에부는 언택트 바람 - 강지나 클라우드 솔루션 아키텍트의료계에부는 언택트 바람 - 강지나 클라우드 솔루션 아키텍트
의료계에부는 언택트 바람 - 강지나 클라우드 솔루션 아키텍트
 
[온라인교육시리즈] 베어메탈서비스 소개 및 활용 - 현영환 클라우드 솔루션 아키텍트
[온라인교육시리즈] 베어메탈서비스 소개 및 활용 - 현영환 클라우드 솔루션 아키텍트[온라인교육시리즈] 베어메탈서비스 소개 및 활용 - 현영환 클라우드 솔루션 아키텍트
[온라인교육시리즈] 베어메탈서비스 소개 및 활용 - 현영환 클라우드 솔루션 아키텍트
 
[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트
[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트
[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트
 
멀티·하이브리드 클라우드 구축 전략 - 네이버비즈니스플랫폼 박기은 CTO
멀티·하이브리드 클라우드 구축 전략 - 네이버비즈니스플랫폼 박기은 CTO멀티·하이브리드 클라우드 구축 전략 - 네이버비즈니스플랫폼 박기은 CTO
멀티·하이브리드 클라우드 구축 전략 - 네이버비즈니스플랫폼 박기은 CTO
 
[온라인교육시리즈] 네이버 클라우드 플랫폼 Clova Premium Voice 소개
[온라인교육시리즈] 네이버 클라우드 플랫폼 Clova Premium Voice 소개[온라인교육시리즈] 네이버 클라우드 플랫폼 Clova Premium Voice 소개
[온라인교육시리즈] 네이버 클라우드 플랫폼 Clova Premium Voice 소개
 
DB innovation conference 2020
DB innovation conference 2020DB innovation conference 2020
DB innovation conference 2020
 

[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용

  • 1. NAVER Cloud Platform Webinar Run up! NKS 에서 Cluster & Pods autoscaling 적용하기 클라우드 솔루션 아키텍트 한지수
  • 2. Contents Run up! - 네이버 클라우드 플랫폼의 Kubernetes Service - Kubernetes Autoscaler 소개 Overview NKS 에 Autoscaler 적용 - Cluster Autoscaling - Horizontal Pod Autoscaling Q & A Wrap-up
  • 4. Ncloud Kubernetes Service Kubernetes Master (Control Plane) Installation &Addon Services Dashboard CSI for Block Storage Weave Scope Ingress Nginx Block Storage NAS Storage Load Balancer API Server Scheduler Replication Controller Endpoint Controller Node Controller Service Controller etcd Controller-Manager Kubelet Kube-proxy Worker Node ContainerContainer ContainerContainer PodPod Kubelet Kube-proxy Worker Node ContainerContainer ContainerContainer PodPod Kubelet Kube-proxy Worker Node ContainerContainer ContainerContainer PodPod Related NCP Service NKS Management Scope Customer Management Scope Cluster AutoScaler Cloud Log Analytics
  • 5. Kubernetes Autoscaler >> Cluster Autoscaler (CA) K8S API Server Cluster Auto Scaler Check Capacity Worker NODE Worker NODE Worker Node Pool Worker NODE Ncloud Kubernetes Service RequestNode Additionalnodeallocated • Pods 가 요청하는 리소스 증가에 따라 Worker Node 를 Scale-Out 하는 Scaler • 클러스터에 설정한 최소/최대 Worker Node 개수 내에서 Scale-In / Out 진행 >> CA 동작 조건 • Worker Node 의 리소스 부족으로 Pods 가 생성되지 못하고 Pending 상태이고 Node Pool 이 사용자가 정의한 최대 노드수에 도달하지 않은 경우 Scale-Out • Cluster Autoscaler 가 10초마다 설정 조건에 따라 불필요한 노드를 확인, 10분 동안 조건에 해당할 경우 Scale Down 진행함
  • 6. Kubernetes Autoscaler >> Horizontal Pod Autoscaler (HPA) Metric Server HPA Worker NODE Worker NODE Worker Node Pool Worker NODE Ncloud Kubernetes Service • 구동중인 Pods 의 CPU 사용률을 기반으로 Pods 를 Scale-Out 하는 Scaler • 확장/축소할 최소/최대 Pods 수량은 Pods 의 Deployment 에 의해 제어됨 >> HPA 동작 조건 • HPA 는 기본 30초 간격으로 Pods 의 사용량을 모니터링 하고 HPA 에 설정한 임계값을 초과할 경우 Pods 를 확장함 (기본 메트릭 허용 오차는 10%) • Scale-out 이벤트 이후 3분 동안 대기하고 Scale-in 이벤트 이후 5분 동안 대기함 Pod Pod Pod Pod Deployment Auto Scaling Group ReplicaSet Get Resource Metric Check Pods Metric Threshold is met
  • 7. NAVER CLOUD PLATFORM CA를 활용한 Worker Node Auto Scaling
  • 8. Cluster Autoscaler 설치 0. Helm 설치 • https://docs.ncloud.com/ko/nks/nks-1-2.html#helm-설치하기 참고하여 Helm 사용 환경 구성 1. Ncloud helm repository 추가 # helm repo add ncloud https://navercloudplatformdeveloper.github.io/helm-charts # helm search autoscaler
  • 9. Cluster Autoscaler 설치 2. Cluster Autoscaler 설치 3. CA Pods 생성 확인 # helm --kubeconfig =$KUBE_CONFIG install ncloud/autoscaler --set min=1 --set max=4 --max-node-provision-time=15m0s --version 1.12.7-beta-201909190000 최소 유지할 Worker Node 개수 최대 확장할 Worker Node 개수 Node 가 확장되고 다음 Node 를 확장할 때까지의 대기시간 # kubectl --kubeconfig =$KUBE_CONFIG get pods -n kube-system | grep cluster-autoscaler
  • 10. Cluster Autoscaler 설치 4. CA 상태 확인 # kubectl --kubeconfig =$KUBE_CONFIG get cm cluster-autoscaler-status -o yaml -n kube-system
  • 11. Cluster Autoscaler Test – Scale Up 1. NKS Pods 생성 후 replicaset 확대 # kubectl --kubeconfig =$KUBE_CONFIG create deployment nginx --image=nginx # kubectl --kubeconfig =$KUBE_CONFIG scale deployment nginx --replicas=100
  • 12. Cluster Autoscaler Test – Scale Up 2. Cluster Autoscaler pods 로그 확인 # kubectl --kubeconfig =$KUBE_CONFIG logs $CA_PODS –n kube-system –f
  • 13. Cluster Autoscaler Test – Scale Down 3. NKS Pods 생성 후 replicaset 축소 # kubectl --kubeconfig =$KUBE_CONFIG scale deployment nginx --replicas=10
  • 14. Cluster Autoscaler Test – Scale Down 3. NKS Pods 생성 후 replicaset 축소 # kubectl --kubeconfig =$KUBE_CONFIG logs $CA_PODS –n kube-system –f
  • 15. NAVER CLOUD PLATFORM HPA 를 활용한 Pods Auto Scaling
  • 16. Horizontal Pod Autoscaler 설정 1. HPA 설정을 적용할 pods 생성 # kubectl --kubeconfig =$KUBE_CONFIG run php-apache --image=k8s.gcr.io/hpa-example --requests=cpu=200m --limits=cpu=500m --expose -- port=80 최초 생성 시 200 밀리코어 (--request) 를 할당하고 추가로 리소스가 필요하다고 판단될 경우 최대 500 밀리코어 (--limits) 까지 추가로 할당을 요청하는 Pods Limit : Pod 가 사용할 수 있는 최대 리소스 Requests: Pod 가 구동되기 위한 요청 리소스 cpu request = 200m cpu limit = 500m Worker NODE 1 2 200 500 1000 … … … 1 2 200 500 1000 … … … Pod 컨테이너가 보장받을 수 있는 CPU 리소스 컨테이너가 최대로 사용할 수 있는 CPU 리소스 * 밀리코어 (Millicores) K8S 에서 CPU 사용량을 측정하는 메트릭으로 1000 Core 로 분할된 CPU Core ex) 코어가 4개인 Node 의 CPU 용량은 4000 m 단일 코어 (1000m) 의 1/10 을 사용할 경우 100m
  • 17. Horizontal Pod Autoscaler 설정 2. Horizontal Pod Autoscaler 생성 # kubectl --kubeconfig =$KUBE_CONFIG autoscale deployment php-apache --cpu-percent=30 --min=1 --max=10 # kubectl --kubeconfig =$KUBE_CONFIG get hpa 현재 CPU 사용률 HPA 가 동작하는 Target CPU 사용률
  • 18. Horizontal Pod Autoscaler 설정 3. HPA 설정한 Pod 에 부하 테스트 # kubectl --kubeconfig =$KUBE_CONFIG run --generator=run-pod/v1 -it --rm load-generator --image=busybox /bin/sh If you don't see a command prompt, try pressing enter. / # while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done 4. HPA 동작 확인 Replica 증가에 따라 current 평균 CPU 사용률이 감소함
  • 19. Horizontal Pod Autoscaler 설정 5. HPA 로그 확인 # kubectl --kubeconfig =$KUBE_CONFIG describe hpa $hpa_name
  • 20. Horizontal Pod Autoscaler 설정 6. 부하 중지 # kubectl --kubeconfig =$KUBE_CONFIG describe hpa $hpa_name
  • 21. The End of Document Thank You