본문 바로가기

인프라/Kubernetes

Kubernetes Pods Auto Scalling

2023.08.27 - [인프라/Kubernetes] - Kubernetes 실습 및 서비스 구축

 

Kubernetes 실습 및 서비스 구축

예상 k8s 서비스 아키텍쳐 Kubernetes 란? 쿠버네티스는 컨테이너화된 서비스를 쉽고 빠르게 배포,확장,관리하기 자동화 해주는 오픈소스 플랫폼입니다. k8s 사용 이유 쿠퍼네티스는 분산 되어 있는

younyellow.tistory.com

Kubernetes Pods Auto Scalling을 적용 해볼 것 입니다.

물리적 서버를 증가시키는 것이 아니라 내부 컨테이너 개수를 늘리는 것 입니다.

이전에 만든 deployment 수정

이부분 추가

cpu의 단위는 1000m = 1코어 라고 합니다.

  resources:
    requests:
      cpu: 100m
    limits:
      cpu: 100m

전체 kind-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-web-server1
spec:
  replicas: 4
  selector:
    matchLabels:
      app: my-web-server1
  template:
    metadata:
      name: my-web-server1
      labels:
        app: my-web-server1
    spec:
      containers:
        - name: my-web-server1
          image: sihyun2/firstservice
          resources:
            requests:
              cpu: 20m
            limits:
              cpu: 20m

HorizontalPodAutoscaler 작성

kind-autoscaling.yaml

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: kubernetes-app-hpa
  namespace: default
spec:
  maxReplicas: 6
  minReplicas: 4
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-web-server1
  targetCPUUtilizationPercentage: 30

 

# kubectl apply -f kind-autoscaling.yaml

cpu 사용량 확인을 위한 Metric Server설치 및 수정

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

kubectl edit deployment metrics-server -n kube-system

-args: 밑에

--kubelet-insecure-tls 추가

작동 확인

테스트

파워쉘에서 실행

PS C:\Users\시현> while ($true){ curl http://localhost:30160}

 

Kubernetes 관련 파일은 

https://github.com/Sihyun3/LearningKubernetes/tree/main

 

GitHub - Sihyun3/LearningKubernetes

Contribute to Sihyun3/LearningKubernetes development by creating an account on GitHub.

github.com

여기서 확인 가능합니다.