확장성 및 성능 문제

Prev Next

VPC 환경에서 이용 가능합니다.

Ncloud Kubernetes Service를 이용하면서 다음과 같은 문제를 겪을 수 있습니다. 문제별 원인과 해결 방법을 확인하고 적절하게 조치해 주십시오.

Cluster Autoscaler를 설정하였지만 Scale In/Out이 발생하지 않습니다.

원인

Cluster Autoscaler 클러스터 내에 리소스 부족으로 인해 스케줄링되지 못한 파드가 존재할 때 노드를 증가시키며, 일정 시간 동안 특정 노드의 사용률이 저조한 경우 노드를 감소시킵니다. 파드의 부하가 아무리 높더라도 요청한 자원량이 없다면 노드가 증가하지 않습니다.

Autoscaler는 다음 조건을 만족할 때 Scale In/Out을 수행합니다.

  • Scale In 조건

    • 파드가 Pending 상태로 대기 중인 경우
    • 노드가 파드를 수용할 수 있는 충분한 리소스를 가지고 있지 않은 경우
  • Scale Out 조건

    • 노드의 파드가 다른 노드로 스케줄링 될 수 있는 경우
    • 일정 기간 동안 특정 노드가 사용되지 않거나 낮은 리소스 사용률을 유지하는 경우

Cluster Autoscaler는 다양한 원인으로 동작하지 않을 수 있으므로 세부 원인을 확인해야 합니다.

해결 방법

  • 사용하고 있는 파드에 Resource Request, Limit 설정이 존재하지 않는 경우, 작동하지 않습니다. 반드시 Resource Request&Limit 설정을 완료해 주십시오.
  • 노드 감소 예외 사항이 존재하는 경우, 노드가 감소하지 않을 수 있습니다. 예외 사항은 다음과 같습니다.
    • Controller(예: Deployment, StatefulSet .. )에 의해 제어되지 않는 경우
    • Local Storage가 설정되어 있는 경우
    • 다른 노드로 파드가 이동할 수 없는 경우
    • Annotation "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"이 설정되어 있는 경우
    • 기타 예외 사항에 대해서는 공식 문서를 참조해 주십시오.
참고
  • ClusterAutoscaler의 Scale 변경 방식에 대한 자세한 설명은 How does scale-down work?를 참조해 주십시오.
  • 실제 노드 리소스 사용량과 파드 리소스 요청량에 차이가 있는 경우, 비효율적일 수 있으므로 적절한 값으로 파드 리소스 요청량을 수정하여 사용하는 것을 권고합니다.
  • 실제 노드 리소스 사용량이 낮더라도 파드 리소스 요청량으로 인해 파드가 펜딩 상태에 머무르게 되면, Cluster Autoscaler가 이를 감지하고 노드를 자동으로 확장합니다. 자세한 설명은 리소스 요청이 포함된 파드를 스케줄링하는 방법를 참조해 주십시오.
  • Cluster Autoscaler 사용 시 파라미터를 변경하거나 확인하고 싶습니다.
  • Cluster Autoscaler 사용 시 파라미터가 변경되지 않습니다.

원인

Cluster Autoscaler 설정 시 기본 파라미터를 사용하며, 변경 기능은 제공하지 않습니다.

해결 방법

Cluster Autoscaler에서 사용되는 파라미터 및 기본 값은 What are the parameters to CA를 확인해 주십시오.

참고

이 가이드에서 필요한 정보를 찾지 못했거나 추가로 필요한 정보가 있으신 경우, 언제든지 아래의 피드백 아이콘을 클릭하여 의견을 보내 주십시오. 전달해 주신 의견을 참고하여 더 유용한 정보를 제공하겠습니다.