Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Pod replica의 갯수를 변경하여 scaling.
  • CPU와 memory의 metrics를 base로 하여 scaling을 trigger.
  • Multiple metrics, Custom metrics, external metrics를 base로 사용하는 것도 가능.

가-2. HPA Workflow

가-3. 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분을 기다린 후에 scaledown event를 발생 시킨다.
    → kube-controller-manage의 --horizontal-pod-autoscaler-downscale-delay flag로 변경 가능.
  • HPA는 Deployment object에서 최적으로 동작한다. HPA에서 target으로 설정된 Deployment의 replica를 직접적으로 수정하는 것은 바람직 하지 않다.

...

  • CA는 사용률이 높지 않은 node들의 scale down은 10분을 대기하고 수행.
  • Annotation의 "cluster-autoscaler.kubernetes.io/safe-to-evict": "true".
    → 적절히 사용. 남용하여 대다수의 pod들이 사용되면 scale down에 대한 flexibility가 떨어짐.
  • scale down에서 pod들이 quorum을 유지하도록 PodDisruptionBudgets를 사용.

...


다-4. Autoscaler 결합 workflow


실제 동작

  • CA에서 node를 join 시키는데는 시간이 발생.
    → AWS + kops 환경에서는 5분 정도의 시간이 발생.
  • Node resource가 여유가 있다면 HPA, VPA의 scaling은 수십초 내에 완료.

...