---
title: "확장성 및 성능 문제"
slug: "k8s-troubleshoot-performance"
updated: 2026-07-23T09:02:32Z
published: 2026-07-23T09:02:32Z
canonical: "guide-fin.ncloud-docs.com/k8s-troubleshoot-performance"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://guide-fin.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 확장성 및 성능 문제

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

## Cluster Autoscaler 설정 후에도 Scale In/Out이 발생하지 않음

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

#### 원인

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

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

- Scale In 조건
  - 파드가 Pending 상태로 대기 중인 경우
  - 노드가 파드를 수용할 수 있는 충분한 리소스를 가지고 있지 않은 경우
- Scale Out 조건
  - 노드의 파드가 다른 노드로 스케줄링 될 수 있는 경우
  - 일정 기간 동안 특정 노드가 사용되지 않거나 낮은 리소스 사용률을 유지하는 경우

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

#### 해결 방법

- 사용하고 있는 파드에 Resource Request, Limit 설정이 존재하지 않는 경우, 작동하지 않습니다. 반드시 [Resource Request&Limit](https://kubernetes.io/ko/docs/concepts/configuration/manage-resources-containers/) 설정을 완료해 주십시오.
- 노드 감소 예외 사항이 존재하는 경우, 노드가 감소하지 않을 수 있습니다. 예외 사항은 다음과 같습니다.
  - Controller(예: Deployment, StatefulSet .. )에 의해 제어되지 않는 경우
  - Local Storage가 설정되어 있는 경우
  - 다른 노드로 파드가 이동할 수 없는 경우
  - Annotation "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"이 설정되어 있는 경우
  - 기타 예외 사항에 대해서는 [공식 문서](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-types-of-pods-can-prevent-ca-from-removing-a-node)를 참조해 주십시오.

          참고

          

- ClusterAutoscaler의 Scale Down 방식에 대한 자세한 설명은 [How does scale-down work?](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-does-scale-down-work)를 참조해 주십시오.
- 실제 노드 리소스 사용량과 파드 리소스 요청량에 차이가 있는 경우, 비효율적일 수 있으므로 적절한 값으로 파드 리소스 요청량을 수정하여 사용하는 것을 권고합니다.
- 실제 노드 리소스 사용량이 낮더라도 파드 리소스 요청량으로 인해 파드가 펜딩 상태에 머무르게 되면, Cluster Autoscaler가 이를 감지하고 노드를 자동으로 확장합니다. 자세한 설명은 [리소스 요청이 포함된 파드를 스케줄링하는 방법](https://kubernetes.io/ko/docs/concepts/configuration/manage-resources-containers/#%EB%A6%AC%EC%86%8C%EC%8A%A4-%EC%9A%94%EC%B2%AD%EC%9D%B4-%ED%8F%AC%ED%95%A8%EB%90%9C-%ED%8C%8C%EB%93%9C%EB%A5%BC-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95)를 참조해 주십시오.

## Cluster Autoscaler 사용 시 파라미터 변경

- Cluster Autoscaler 사용 시 파라미터를 변경하거나 확인하고 싶습니다.
- Cluster Autoscaler 사용 시 파라미터가 변경되지 않습니다.

#### 원인

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

#### 해결 방법

Cluster Autoscaler에서 사용되는 파라미터 및 기본 값은 [What are the parameters to CA](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-the-parameters-to-ca)를 확인해 주십시오.

## 특정 노드를 Scale Down 대상에서 제외

Cluster Autoscaler 사용 시 특정 노드를 Scale Down 대상에서 제외하고 싶습니다.

#### 원인

기본적으로 Cluster Autoscaler는 저사용 노드를 축소 대상으로 간주합니다. 특별히 제외하지 않는 한 모든 노드가 후보가 될 수 있습니다.

#### 해결 방법

축소 대상에서 제외할 노드에 어노테이션을 추가합니다.

```
$ kubectl annotate node <nodename> cluster-autoscaler.kubernetes.io/scale-down-disabled=true
```

## 클러스터가 자동으로 확장되는 경우

Cluster Autoscaler 적용 이후 클러스터가 자동으로 확장되었습니다.

#### 원인

cilium-operator 파드는 안정적인 네트워킹을 위해 기본 2개로 구성됩니다. 워커노드가 한 대일 경우 스케줄 설정으로 인하여 하나는 Running 상태, 나머지 하나는 Pending 상태가 됩니다. Cluster Autoscaler가 Pending 상태의 cilium-operator 파드를 위해 확장을 진행하게 됩니다.

#### 해결 방법

cilium-operator 파드의 파드 수를 조정합니다.

```
$ kubectl scale --replicas=1 deploy/cilium-operator -n kube-system
```

하지만 워커노드를 한 대만 운영할 경우 안정성이 감소할 수 있으므로 주의가 필요합니다.

## 전체 노드 수가 최대 노드 수 보다 작아도 신규 노드가 생성되지 않는 경우

Cluster Autoscaler 사용 시 클러스터 전체 노드 수는 여유가 있지만 최소 노드 수를 조정하여도 새로운 노드가 생성되지 않습니다.

#### 원인

Cluster Autoscaler의 설정 이후 최소 노드 수를 조정하여도 이를 자동으로 확장하지 않습니다.

#### 해결 방법

Cluster Autoscaler의 설정 해제 이후 고정 노드 수를 증가시킵니다.

## 워커노드의 높은 리소스 사용량

워커노드에서 CPU, 메모리 등 리소스 사용량이 비정상적으로 높게 나타나고 있습니다.

#### 원인

높은 리소스 사용량의 원인은 주로 다음과 같습니다.

- 과도한 파드 배포: 워커노드에 배치된 파드 수가 많은 경우
- 리소스 제한 미설정: 파드에 대한 Resource Request, Limit 이 존재하지 않는 경우
- 메모리 누수: 운영 파드에서 메모리 누수가 발생하는 경우

#### 해결 방법

**파드 배포 상태 확인**

- 아래 명령어를 실행하여 리소스 사용량이 높은 노드 및 파드를 조사하고 필요에 따라 클러스터 내에서 조정해 주십시오.

```
$ kubectl top nodes
$ kubectl top pods
```
- 워커 노드에 접근하여 메모리 사용 현황을 확인해 주십시오. used와 buff/cache 값을 확인합니다. buff/cache 사용량이 높은 경우에도 문제가 발생할 수 있으므로 점검이 필요합니다.

```
$ free -h
```

**Resource Request 및 Limit 설정**

- 운영 파드에 대해 리소스 제한 설정을 진행하여 과도한 사용을 방지합니다.
- [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)

          참고

          

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