"CKA SimA 05 Kustomize로 HPA 오토스케일러 설정"의 두 판 사이의 차이

1번째 줄: 1번째 줄:
==개요==
==개요==
;Kustomize를 사용하여 HorizontalPodAutoscaler 구성
;Kustomize를 사용하여 HorizontalPodAutoscaler 구성
* https://kubernetes.io/search/?q=kind:%20HorizontalPodAutoscaler


==사전작업==
==사전작업==

2025년 5월 3일 (토) 20:17 판

1 개요

Kustomize를 사용하여 HorizontalPodAutoscaler 구성

2 사전작업

mkdir -p /tmp/hpa-demo/{base,staging,prod}

3 base 디렉터리 구성

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
  - hpa-demo.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-demo
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: hpa-demo
  minReplicas: 2
  maxReplicas: 4
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 50
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: hpa-demo
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hpa-demo
spec:
  selector:
    matchLabels:
      app: hpa-demo
  template:
    metadata:
      labels:
        app: hpa-demo
    spec:
      serviceAccountName: hpa-demo
      containers:
        - name: web
          image: nginx:1.25-alpine

4 staging 오버레이 구성

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
  - ../base

patches:
  - path: hpa-demo-patch.yaml

transformers:
  - |-
    apiVersion: builtin
    kind: NamespaceTransformer
    metadata:
      name: staging-ns-transformer
    namespace: hpa-demo-staging
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hpa-demo
  labels:
    env: staging

5 prod 오버레이 구성

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
  - ../base

patches:
  - path: hpa-demo-patch.yaml

transformers:
  - |-
    apiVersion: builtin
    kind: NamespaceTransformer
    metadata:
      name: prod-ns-transformer
    namespace: hpa-demo-prod
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-demo
spec:
  maxReplicas: 6
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hpa-demo
  labels:
    env: prod

6 적용

# 스테이징 환경 적용
kubectl kustomize /tmp/hpa-demo/staging | kubectl apply -f -

# 프로덕션 환경 적용
kubectl kustomize /tmp/hpa-demo/prod | kubectl apply -f -

7 결과 확인

스테이징

$ kubectl -n hpa-demo-staging get hpa hpa-demo
NAME        REFERENCE              TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
hpa-demo    Deployment/hpa-demo   0%/50%    2         4         2          1m

프로덕션

$ kubectl -n hpa-demo-prod get hpa hpa-demo
NAME        REFERENCE              TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
hpa-demo    Deployment/hpa-demo   0%/50%    2         6         2          1m

8 같이 보기

9 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}