클러스터 자동 확장 처리 이벤트 보기

Google Kubernetes Engine(GKE) 클러스터 자동 확장 처리는 Cloud Logging에서 로그 항목으로 사용할 수 있는 공개 상태 이벤트를 발생시킵니다. 이 페이지에서는 로깅된 이러한 이벤트를 보고 GKE 클러스터 자동 확장 처리가 자동 확장 결정을 내리는 시점과 이유를 파악하는 방법을 설명합니다.

가용성 요구사항

클러스터 자동 확장 처리의 로깅된 이벤트를 보는 기능은 다음 클러스터 버전에서 사용할 수 있습니다.

이벤트 유형 클러스터 버전
status, scaleUp, scaleDown, eventResult 1.15.4-gke.7 이상
nodePoolCreated, nodePoolDeleted. 1.15.4-gke.18 이상
noScaleUp 1.16.6-gke.3 이상
noScaleDown 1.16.8-gke.2 이상

이벤트 보기

클러스터 자동 확장 처리의 공개 상태 이벤트는 GKE 클러스터가 있는 프로젝트와 동일한 프로젝트의 Cloud Logging 로그에 저장됩니다.

로그를 보려면 다음 단계를 따르세요.

  1. Cloud Console에서 로그 뷰어 페이지로 이동합니다.

    로그 뷰어로 이동

  2. 기본 또는 고급 쿼리 인터페이스를 사용하여 로그를 검색합니다.

    기본 쿼리 인터페이스를 사용하여 로그를 검색하려면 다음을 수행합니다.

    1. 리소스 드롭다운 목록에서 Kubernetes 클러스터를 선택한 다음 클러스터 위치와 클러스터 이름을 선택합니다.
    2. 로그 유형 드롭다운 목록에서 container.googleapis.com/cluster-autoscaler-visibility를 선택합니다.
    3. 시간 범위 드롭다운 목록에서 원하는 시간 범위를 선택합니다.

    고급 쿼리 인터페이스를 사용하여 로그를 검색하려면 다음 고급 필터를 적용합니다.

    resource.type="k8s_cluster"
    resource.labels.location="cluster-location"
    resource.labels.cluster_name="cluster-name"
    logName="projects/project-id/logs/container.googleapis.com%2Fcluster-autoscaler-visibility"
    

    각 항목의 의미는 다음과 같습니다.

    • cluster-location은 검사 중인 클러스터의 위치입니다.
    • cluster-name은 클러스터의 이름입니다.
    • project-id는 프로젝트의 ID입니다.

이벤트 유형

로깅된 모든 이벤트는 JSON 형식이며, 로그 항목의 jsonPayload 필드에서 찾을 수 있습니다. 이벤트의 모든 타임스탬프는 UNIX 초 타임스탬프입니다.

다음은 클러스터 자동 확장 처리에서 발생시킨 이벤트 유형을 요약한 것입니다.

이벤트 유형 설명
status 주기적으로 발생하며, 자동 확장된 모든 노드 풀의 크기와 클러스터 자동 확장 처리에서 관찰되는 자동 확장된 모든 노드 풀의 대상 크기를 설명합니다.
scaleUp 클러스터 자동 확장 처리가 클러스터를 확장할 때 발생합니다.
scaleDown 클러스터 자동 확장 처리가 클러스터를 축소할 때 발생합니다.
eventResult scaleUp 또는 scaleDown 이벤트가 성공적으로 완료되거나 실패할 때 발생합니다.
nodePoolCreated 노드 자동 프로비저닝이 사용 설정된 클러스터 자동 확장 처리가 새 노드 풀을 만들 때 발생합니다.
nodePoolDeleted 노드 자동 프로비저닝이 사용 설정된 클러스터 자동 확장 처리가 노드 풀을 삭제할 때 발생합니다.
noScaleUp 클러스터에 예약할 수 없는 Pod가 있고 클러스터 자동 확장 처리가 Pod를 수용하도록 클러스터를 확장할 수 없을 때 발생합니다.
noScaleDown 클러스터 자동 확장 처리에 의한 삭제가 차단된 노드가 있을 때 발생합니다.

상태 이벤트

status 이벤트는 주기적으로 발생하며, 자동 확장된 모든 노드 풀의 실제 크기와 클러스터 자동 확장 처리에서 관찰되는 자동 확장된 모든 노드 풀의 대상 크기를 설명합니다.

예시

다음 로그 샘플은 status 이벤트를 보여줍니다.

{
  "status": {
    "autoscaledNodesCount": 4,
    "autoscaledNodesTarget": 4,
    "measureTime": "1582898536"
  }
}

scaleUp 이벤트

scaleUp 이벤트는 클러스터 자동 확장 처리가 클러스터를 확장할 때 발생합니다. 이 이벤트에는 확장된 관리형 인스턴스 그룹(MIG), 늘어난 노드 수, 이벤트를 트리거한 예약할 수 없는 Pod에 대한 정보가 포함되어 있습니다.

트리거하는 Pod 목록은 50개의 임의 항목으로 잘립니다. 트리거하는 Pod의 실제 개수는 triggeringPodsTotalCount 필드에서 찾을 수 있습니다.

예시

다음 로그 샘플은 scaleUp 이벤트를 보여줍니다.

{
  "decision": {
    "decideTime": "1582124907",
    "eventId": "ed5cb16d-b06f-457c-a46d-f75dcca1f1ee",
    "scaleUp": {
      "increasedMigs": [
        {
          "mig": {
            "name": "test-cluster-default-pool-a0c72690-grp",
            "nodepool": "default-pool",
            "zone": "us-central1-c"
          },
          "requestedNodes": 1
        }
      ],
      "triggeringPods": [
        {
          "controller": {
            "apiVersion": "apps/v1",
            "kind": "ReplicaSet",
            "name": "test-85958b848b"
          },
          "name": "test-85958b848b-ptc7n",
          "namespace": "default"
        }
      ],
      "triggeringPodsTotalCount": 1
    }
  }
}

scaleDown 이벤트

scaleDown 이벤트는 클러스터 자동 확장 처리가 클러스터를 축소할 때 발생합니다. 이 이벤트에는 삭제되는 노드와 그로 인해 제거되어야 하는 Pod에 대한 정보가 포함되어 있습니다.

cpuRatiomemRatio 필드는 노드의 CPU 및 메모리 사용률을 백분율로 설명합니다. 이 사용률은 Pod 요청의 합계를 실제 사용률이 아닌 할당 가능한 노드로 나눈 값입니다.

제거된 Pod 목록은 50개의 임의 항목으로 잘립니다. 제거된 Pod의 실제 개수는 evictedPodsTotalCount 필드에서 찾을 수 있습니다.

예시

다음 로그 샘플은 scaleDown 이벤트를 보여줍니다.

{
  "decision": {
    "decideTime": "1580594665",
    "eventId": "340dac18-8152-46ff-b79a-747f70854c81",
    "scaleDown": {
      "nodesToBeRemoved": [
        {
          "evictedPods": [
            {
              "controller": {
                "apiVersion": "apps/v1",
                "kind": "ReplicaSet",
                "name": "kube-dns-5c44c7b6b6"
              },
              "name": "kube-dns-5c44c7b6b6-xvpbk"
            }
          ],
          "evictedPodsTotalCount": 1,
          "node": {
            "cpuRatio": 23,
            "memRatio": 5,
            "mig": {
              "name": "test-cluster-default-pool-c47ef39f-grp",
              "nodepool": "default-pool",
              "zone": "us-central1-f"
            },
            "name": "test-cluster-default-pool-c47ef39f-p395"
          }
        }
      ]
    }
  }
}

eventResult 이벤트

eventResult 이벤트는 scaleUp 또는 scaleDown 이벤트가 성공적으로 완료되거나 실패할 때 발생합니다. 이 이벤트에는 오류 메시지와 함께 scaleUp 또는 scaleDown 이벤트 eventId 필드에 있는 이벤트 ID 목록이 포함되어 있습니다. 빈 오류 메시지는 이벤트가 성공적으로 완료되었음을 나타냅니다. eventResult 이벤트 목록은 results 필드에 집계됩니다.

오류를 진단하려면 ScaleUp 오류ScaleDown 오류 섹션을 참조하세요.

예시

다음 로그 샘플은 eventResult 이벤트를 보여줍니다.

{
  "resultInfo": {
    "measureTime": "1582878896",
    "results": [
      {
        "eventId": "2fca91cd-7345-47fc-9770-838e05e28b17"
      },
      {
        "errorMsg": {
          "messageId": "scale.down.error.failed.to.delete.node.min.size.reached",
          "parameters": [
            "test-cluster-default-pool-5c90f485-nk80"
          ]
        },
        "eventId": "ea2e964c-49b8-4cd7-8fa9-fefb0827f9a6"
      }
    ]
  }
}

nodePoolCreated 이벤트

nodePoolCreated 이벤트는 노드 자동 프로비저닝이 사용 설정된 클러스터 자동 확장 처리가 새 노드 풀을 만들 때 발생합니다. 이 이벤트에는 생성된 노드 풀의 이름과 해당 MIG 목록이 포함되어 있습니다. scaleUp 이벤트로 인해 노드 풀이 생성된 경우 해당 scaleUp 이벤트의 eventIdtriggeringScaleUpId 필드에 포함됩니다.

예시

다음 로그 샘플은 nodePoolCreated 이벤트를 보여줍니다.

{
  "decision": {
    "decideTime": "1585838544",
    "eventId": "822d272c-f4f3-44cf-9326-9cad79c58718",
    "nodePoolCreated": {
      "nodePools": [
        {
          "migs": [
            {
              "name": "test-cluster-nap-n1-standard--b4fcc348-grp",
              "nodepool": "nap-n1-standard-1-1kwag2qv",
              "zone": "us-central1-f"
            },
            {
              "name": "test-cluster-nap-n1-standard--jfla8215-grp",
              "nodepool": "nap-n1-standard-1-1kwag2qv",
              "zone": "us-central1-c"
            }
          ],
          "name": "nap-n1-standard-1-1kwag2qv"
        }
      ],
      "triggeringScaleUpId": "d25e0e6e-25e3-4755-98eb-49b38e54a728"
    }
  }
}

nodePoolDeleted 이벤트

nodePoolDeleted 이벤트는 노드 자동 프로비저닝이 사용 설정된 클러스터 자동 확장 처리가 노드 풀을 삭제할 때 발생합니다.

예시

다음 로그 샘플은 nodePoolDeleted 이벤트를 보여줍니다.

{
  "decision": {
    "decideTime": "1585830461",
    "eventId": "68b0d1c7-b684-4542-bc19-f030922fb820",
    "nodePoolDeleted": {
      "nodePoolNames": [
        "nap-n1-highcpu-8-ydj4ewil"
      ]
    }
  }
}

noScaleUp 이벤트

noScaleUp 이벤트는 클러스터에 예약할 수 없는 Pod가 있고 클러스터 자동 확장 처리가 Pod를 수용하도록 클러스터를 확장할 수 없을 때 주기적으로 발생합니다.

  • noScaleUp 이벤트는 최선의 방법입니다. 즉, 이러한 이벤트는 클러스터 자동 확장 처리가 확장할 수 없는 가능한 모든 이유를 포괄하지 않습니다.
  • noScaleUp 이벤트는 생성된 로그 볼륨을 제한하도록 제한됩니다. 지속되는 각 이유는 몇 분마다 발생합니다.
  • 모든 이유는 여러 이벤트에 임의로 분할될 수 있습니다. 예를 들어 단일 Pod 그룹의 거부된 모든 MIG 이유가 동일한 이벤트에 나타난다는 보장은 없습니다.
  • 처리되지 않은 Pod 그룹 목록은 50개의 임의 항목으로 잘립니다. 처리되지 않은 Pod 그룹의 실제 개수는 unhandledPodGroupsTotalCount 필드에서 찾을 수 있습니다.

이유 필드

다음 필드는 확장이 발생하지 않은 이유를 설명하는 데 도움이 됩니다.

  • reason: 클러스터 자동 확장 처리가 확장되지 않는 전역 이유를 제공합니다. 자세한 내용은 noScaleUp 최상위 수준 이유 섹션을 참조하세요.
  • napFailureReason: 클러스터 자동 확장 처리가 추가 노드 풀을 프로비저닝하지 못하도록 하는 전역 이유를 제공합니다(예: 노드 자동 프로비저닝이 사용 중지됨). 자세한 내용은 noScaleUp 최상위 수준 노드 자동 프로비저닝 이유 섹션을 참조하세요.
  • skippedMigs[].reason: 특정 MIG를 건너뛴 이유에 대한 정보를 제공합니다. 클러스터 자동 확장 처리는 확장 시도 도중 Pod 고려 대상에서 일부 MIG를 건너뜁니다(예: 노드를 하나 더 추가하면 클러스터 전체 리소스 한도를 초과하기 때문에). 자세한 내용은 noScaleUp MIG 수준 이유 섹션을 참조하세요.
  • unhandledPodGroups: 예약할 수 없는 특정 Pod 그룹이 확장을 트리거하지 않는 이유에 대한 정보가 포함되어 있습니다. Pod는 직접 실행 컨트롤러별로 그룹화됩니다. 컨트롤러가 없는 Pod는 그 자체로 그룹에 속합니다. 각 Pod 그룹에는 임의의 예시 Pod와 그룹의 Pod 수뿐 아니라 다음과 같은 이유가 포함되어 있습니다.
    • napFailureReasons: 클러스터 자동 확장 처리가 이 Pod 그룹을 수용하기 위해 새 노드 풀을 프로비저닝할 수 없는 이유(예: Pod에 어피니티 제약조건이 있음). 자세한 내용은 noScaleUp Pod 수준 노드 자동 프로비저닝 이유 섹션을 참조하세요.
    • rejectedMigs[].reason: 클러스터 자동 확장 처리가 이 Pod 그룹을 수용하기 위해 특정 MIG의 크기를 늘릴 수 없는 MIG별 이유(예: MIG의 노드가 Pod에 비해 너무 작음). 자세한 내용은 noScaleUp MIG 수준 이유 섹션을 참조하세요.

예시

다음 로그 샘플은 noScaleUp 이벤트를 보여줍니다.

{
  "noDecisionStatus": {
    "measureTime": "1582523362",
    "noScaleUp": {
      "skippedMigs": [
        {
          "mig": {
            "name": "test-cluster-nap-n1-highmem-4-fbdca585-grp",
            "nodepool": "nap-n1-highmem-4-1cywzhvf",
            "zone": "us-central1-f"
          },
          "reason": {
            "messageId": "no.scale.up.mig.skipped",
            "parameters": [
              "max cluster cpu limit reached"
            ]
          }
        }
      ],
      "unhandledPodGroups": [
        {
          "napFailureReasons": [
            {
              "messageId": "no.scale.up.nap.pod.zonal.resources.exceeded",
              "parameters": [
                "us-central1-f"
              ]
            }
          ],
          "podGroup": {
            "samplePod": {
              "controller": {
                "apiVersion": "v1",
                "kind": "ReplicationController",
                "name": "memory-reservation2"
              },
              "name": "memory-reservation2-6zg8m",
              "namespace": "autoscaling-1661"
            },
            "totalPodCount": 1
          },
          "rejectedMigs": [
            {
              "mig": {
                "name": "test-cluster-default-pool-b1808ff9-grp",
                "nodepool": "default-pool",
                "zone": "us-central1-f"
              },
              "reason": {
                "messageId": "no.scale.up.mig.failing.predicate",
                "parameters": [
                  "NodeResourcesFit",
                  "Insufficient memory"
                ]
              }
            }
          ]
        }
      ],
      "unhandledPodGroupsTotalCount": 1
    }
  }
}

noScaleDown 이벤트

noScaleDown 이벤트는 클러스터 자동 확장 처리에 의한 삭제가 차단된 노드가 있을 때 주기적으로 발생합니다.

  • 사용률이 높기 때문에 제거할 수 없는 노드는 noScaleDown 이벤트에 포함되지 않습니다.
  • noScaleDown 이벤트는 최선의 방법입니다. 즉, 이러한 이벤트는 클러스터 자동 확장 처리가 축소할 수 없는 가능한 모든 이유를 포괄하지 않습니다.
  • noScaleDown 이벤트는 생성된 로그 볼륨을 제한하도록 제한됩니다. 지속되는 각 이유는 몇 분마다 발생합니다.
  • 노드 목록은 50개의 임의 항목으로 잘립니다. 실제 노드 수는 nodesTotalCount 필드에서 찾을 수 있습니다.

이유 필드

다음 필드는 축소가 발생하지 않은 이유를 설명하는 데 도움이 됩니다.

  • reason: 클러스터 자동 확장 처리가 축소되지 않는 전역 이유를 제공합니다(예: 최근 확장 후 백오프 기간). 자세한 내용은 noScaleDown 최상위 수준 이유 섹션을 참조하세요.
  • nodes[].reason: 클러스터 자동 확장 처리가 특정 노드를 삭제할 수 없는 노드별 이유를 제공합니다(예: 노드의 Pod를 이동할 위치가 없음). 자세한 내용은 noScaleDown 노드 수준 이유 섹션을 참조하세요.

예시

다음 로그 샘플은 noScaleDown 이벤트를 보여줍니다.

{
  "noDecisionStatus": {
    "measureTime": "1582858723",
    "noScaleDown": {
      "nodes": [
        {
          "node": {
            "cpuRatio": 42,
            "mig": {
              "name": "test-cluster-default-pool-f74c1617-grp",
              "nodepool": "default-pool",
              "zone": "us-central1-c"
            },
            "name": "test-cluster-default-pool-f74c1617-fbhk"
          },
          "reason": {
            "messageId": "no.scale.down.node.no.place.to.move.pods"
          }
        }
      ],
      "nodesTotalCount": 1,
      "reason": {
        "messageId": "no.scale.down.in.backoff"
      }
    }
  }
}

디버깅 시나리오

이 섹션에서는 확장 이벤트를 디버깅하는 방법을 안내합니다.

클러스터가 확장되지 않음

시나리오: 클러스터에 Pod를 만들었지만 지난 1시간 동안 대기 중 상태에서 멈춰 있습니다. 클러스터 자동 확장 처리가 Pod를 수용하기 위해 새 노드를 프로비저닝하지 않았습니다.

해결책:

  1. 로그 뷰어에서 이벤트 보기 섹션에 설명된 대로 클러스터 자동 확장 처리 이벤트의 로깅 세부 정보를 찾습니다.
  2. triggeringPods 필드에서 원하는 Pod를 포함하는 scaleUp 이벤트를 검색합니다. 특정 JSON 필드 값으로 필터링을 비롯한 로그 항목 필터링이 가능합니다. 고급 로그 쿼리에서 자세히 알아보세요.

    1. scaleUp 이벤트와 동일한 eventId가 포함된 EventResult를 찾습니다.
    2. errorMsg 필드를 보고 가능한 scaleUp 오류 메시지 목록을 참조합니다.

    ScaleUp 오류 예시: scaleUp 이벤트의 경우 오류가 "scale.up.error.quota.exceeded"임을 발견합니다. 이는 '할당량 초과로 인해 일부 MIG를 늘릴 수 없어서 scaleUp 이벤트가 실패했습니다'를 나타냅니다. 이 문제를 해결하려면 할당량 설정을 검토하고 할당량 초과에 근접한 설정을 늘립니다. 클러스터 자동 확장 처리가 새 노드를 추가하고 Pod가 예약됩니다.

  3. 그렇지 않으면 noScaleUp 이벤트를 검색하고 다음 필드를 검토합니다.

    • unhandledPodGroups: Pod(또는 Pod의 컨트롤러)에 대한 정보를 포함합니다.
    • reason: 확장이 차단될 수 있음을 나타내는 전역 이유를 제공합니다.
    • skippedMigs: 일부 MIG를 건너뛸 수 있는 이유를 제공합니다.
  4. noScaleUp 이벤트의 가능한 이유가 포함된 다음 섹션을 참조하세요.

    noScaleUp 예시: Pod의 noScaleUp 이벤트를 발견했고, rejectedMigs 필드의 모든 MIG에 두 매개변수 "NodeAffinity""node(s) did not match node selector"가 포함된 동일한 이유 메시지 ID "no.scale.up.mig.failing.predicate"가 있습니다. 오류 메시지 목록을 참조한 후 'MIG 조건자가 실패했기 때문에 MIG를 확장할 수 없다'는 것을 발견합니다. 매개변수는 실패한 조건자의 이름과 실패한 이유입니다. 이 문제를 해결하려면 Pod 사양을 검토하고 클러스터의 MIG와 일치하지 않는 노드 선택기가 있음을 확인합니다. Pod 사양에서 선택기를 삭제하고 Pod를 다시 만듭니다. 클러스터 자동 확장 처리가 새 노드를 추가하고 Pod가 예약됩니다.

  5. noScaleUp 이벤트가 없으면 다른 디버깅 메서드를 사용하여 문제를 해결합니다.

클러스터가 축소되지 않음

시나리오: 클러스터에 지난 며칠 동안 CPU와 메모리를 10%만 사용한 노드가 있습니다. 사용률이 낮음에도 클러스터 자동 확장 처리는 이 노드를 예상대로 삭제하지 않았습니다.

해결책:

  1. 로그 뷰어에서 이벤트 보기 섹션에 설명된 대로 클러스터 자동 확장 처리 이벤트의 로깅 세부 정보를 찾습니다.
  2. nodesToBeRemoved 필드에서 원하는 노드를 포함하는 scaleDown 이벤트를 검색합니다. 특정 JSON 필드 값으로 필터링을 비롯한 로그 항목 필터링이 가능합니다. 고급 로그 쿼리에서 자세히 알아보세요.
    1. scaleDown 이벤트에서 연결된 eventId가 포함된 EventResult 이벤트를 검색합니다.
    2. errorMsg 필드를 보고 가능한 scaleDown 오류 메시지 목록을 참조합니다.
  3. 그렇지 않으면 nodes 필드에 원하는 노드가 있는 noScaleDown 이벤트를 검색합니다. 축소가 차단될 수 있음을 나타내는 전역 이유는 reason 필드를 검토하세요.
  4. noScaleDown 이벤트의 가능한 이유가 포함된 다음 섹션을 참조하세요.

    noScaleDown 예시: 노드의 노드별 이유가 포함된 noScaleDown 이벤트를 찾았습니다. 메시지 ID는 "no.scale.down.node.pod.has.local.storage"이며, 단일 매개변수 "test-single-pod"가 있습니다. 오류 메시지 목록을 참조한 후 이것이 'Pod가 로컬 스토리지를 요청하기 때문에 축소를 차단하고 있습니다'를 뜻함을 발견합니다. Kubernetes 클러스터 자동 확장 처리 FAQ를 참조하여 Pod에 "cluster-autoscaler.kubernetes.io/safe-to-evict": "true" 주석을 추가하는 것이 해결책임을 알아냅니다. 주석을 적용한 후 클러스터 자동 확장 처리가 클러스터를 올바르게 축소합니다.

  5. noScaleDown 이벤트가 없으면 다른 디버깅 메서드를 사용하여 문제를 해결합니다.

메시지

클러스터 자동 확장 처리가 발생시킨 이벤트는 매개변수화된 메시지(messageId 필드에서 본)를 사용하여 이벤트 설명을 제공합니다.

이 섹션에서는 다양한 messageId 및 해당 매개변수에 대한 설명을 제공합니다. 하지만 가능한 모든 메시지가 이 섹션에 포함되지는 않으며 언제든지 확장될 수 있습니다.

scaleUp 오류

scaleUp 이벤트의 오류 메시지는 해당 eventResult 이벤트의 resultInfo.results[].errorMsg 필드에 있습니다.

메시지 설명

"scale.up.error.out.of.resources"
리소스 부족으로 인해 일부 MIG를 늘릴 수 없어서 scaleUp 이벤트가 실패했습니다.

매개변수: 실패 MIG ID


"scale.up.error.quota.exceeded"
Compute Engine 할당량 초과로 인해 일부 MIG를 늘릴 수 없어 scaleUp 이벤트가 실패했습니다.

매개변수: 실패 MIG ID


"scale.up.error.waiting.for.instances.timeout"
일부 MIG의 인스턴스가 제때 표시되지 않아서 scaleUp 이벤트가 실패했습니다.

매개변수: 실패 MIG ID

scaleDown 오류

scaleDown 이벤트의 오류 메시지는 해당 eventResult 이벤트의 resultInfo.results[].errorMsg 필드에 있습니다.

메시지 설명

"scale.down.error.failed.to.mark.to.be.deleted"
노드를 삭제하도록 표시할 수 없어서 scaleDown 이벤트가 실패했습니다.

매개변수: 실패 노드 이름


"scale.down.error.failed.to.evict.pods"
일부 Pod를 노드에서 제거할 수 없어서 scaleDown 이벤트가 실패했습니다.

매개변수: 실패 노드 이름


"scale.down.error.failed.to.delete.node.min.size.reached"
클러스터가 이미 최소 크기이기 때문에 노드를 삭제할 수 없어서 scaleDown 이벤트가 실패했습니다.

매개변수: 실패 노드 이름

noScaleUp 이벤트의 이유

noScaleUp 최상위 수준 이유

noScaleUp 이벤트의 최상위 수준 이유 메시지는 noDecisionStatus.noScaleUp.reason 필드에 표시됩니다. 메시지에는 클러스터 자동 확장 처리가 클러스터를 확장할 수 없는 최상위 수준 이유가 포함되어 있습니다.

메시지 설명

"no.scale.up.in.backoff"
확장이 백오프 기간에 있으므로(일시적으로 차단됨) noScaleUp이 발생했습니다.

noScaleUp 최상위 수준 노드 자동 프로비저닝 이유

noScaleUp 이벤트의 최상위 수준 노드 자동 프로비저닝 이유 메시지는 noDecisionStatus.noScaleUp.napFailureReason 필드에 표시됩니다. 메시지에는 클러스터 자동 확장 처리가 새 노드 풀을 프로비저닝할 수 없는 최상위 수준 이유가 포함되어 있습니다.

메시지 설명

"no.scale.up.nap.disabled"
노드 자동 프로비저닝이 사용 중지되었기 때문에 노드 자동 프로비저닝이 노드 그룹을 프로비저닝하지 않았습니다. 자세한 내용은 노드 자동 프로비저닝 사용 설정을 참조하세요.

"no.scale.up.nap.no.locations.available"
사용 가능한 노드 자동 프로비저닝 위치가 없으므로 노드 자동 프로비저닝이 노드 그룹을 프로비저닝하지 않았습니다.

noScaleUp MIG 수준 이유

noScaleUp 이벤트의 MIG 수준 이유 메시지는 noDecisionStatus.noScaleUp.skippedMigs[].reasonnoDecisionStatus.noScaleUp.unhandledPodGroups[].rejectedMigs[].reason 필드에 표시됩니다. 메시지에는 클러스터 자동 확장 처리가 특정 MIG의 크기를 늘릴 수 없는 이유가 포함되어 있습니다.

메시지 설명

"no.scale.up.mig.skipped"
시뮬레이션 중에 MIG를 건너뛰었기 때문에 MIG를 확장할 수 없습니다.

매개변수: 사람이 읽을 수 있는 건너뛴 이유


"no.scale.up.mig.failing.predicate"
MIG 조건자가 실패하여 MIG를 확장할 수 없습니다.

매개변수: 실패 조건자의 이름, 사람이 읽을 수 있는 실패 이유

noScaleUp Pod 그룹 수준 노드 자동 프로비저닝 이유

noScaleUp 이벤트의 Pod 그룹 수준 노드 자동 프로비저닝 이유 메시지는 noDecisionStatus.noScaleUp.unhandledPodGroups[].napFailureReasons[] 필드에 표시됩니다. 메시지에는 클러스터 자동 확장 처리가 특정 Pod 그룹을 수용하기 위해 새 노드 풀을 프로비저닝할 수 없는 이유가 포함되어 있습니다.

메시지 설명

"no.scale.up.nap.pod.gpu.no.limit.defined"
Pod에 GPU 요청이 있고 GPU에 정의된 한도가 없으므로 노드 자동 프로비저닝이 Pod의 노드 그룹을 프로비저닝하지 않았습니다.

매개변수: 요청된 GPU 유형


"no.scale.up.nap.pod.gpu.type.not.supported"
노드 자동 프로비저닝이 지원되지 않는 GPU를 지정하므로 Pod의 노드 그룹을 프로비저닝하지 않았습니다. 자세한 내용은 GPU 한도 구성을 참조하세요.

매개변수: 요청된 GPU 유형


"no.scale.up.nap.pod.gpu.other.error"
GPU 구성의 다른 문제로 인해 노드 자동 프로비저닝이 Pod의 노드 그룹을 프로비저닝하지 않았습니다. 자세한 내용은 GPU 한도 구성을 참조하세요.

"no.scale.up.nap.pod.zonal.resources.exceeded"
리소스 한도를 위반하게 되므로 노드 자동 프로비저닝이 이 영역에 있는 Pod의 노드 그룹을 프로비저닝하지 않았습니다.

매개변수: 고려되는 영역의 이름


"no.scale.up.nap.pod.zonal.failing.predicates"
실패한 조건자 때문에 노드 자동 프로비저닝이 이 영역에 있는 Pod의 노드 그룹을 프로비저닝하지 않았습니다.

매개변수: 고려된 영역의 이름, 사람이 읽을 수 있는 조건자 실패 이유

noScaleDown 이벤트의 이유

noScaleDown 최상위 수준 이유

noScaleDown 이벤트의 최상위 수준 이유 메시지는 noDecisionStatus.noScaleDown.reason 필드에 표시됩니다. 메시지에는 클러스터 자동 확장 처리가 클러스터를 축소할 수 없는 최상위 수준 이유가 포함되어 있습니다.

메시지 설명

"no.scale.down.in.backoff"
축소가 백오프 기간에 있으므로(일시적으로 차단됨) noScaleDown 이벤트가 발생했습니다.

"no.scale.down.in.progress"
이전 scaleDown 이벤트가 아직 진행 중이므로 noScaleDown 이벤트가 발생했습니다.

noScaleDown 노드 수준 이유

noScaleDown 이벤트의 노드 수준 이유 메시지는 noDecisionStatus.noScaleDown.nodes[].reason 필드에 표시됩니다. 메시지에는 클러스터 자동 확장 처리가 특정 노드를 삭제할 수 없는 이유가 포함되어 있습니다.

메시지 설명

"no.scale.down.node.scale.down.disabled.annotation"
'축소 사용 중지됨' 주석이 있으므로 노드를 삭제할 수 없습니다. 자세한 내용은 Kubernetes 클러스터 자동 확장 처리 FAQ를 참조하세요.

"no.scale.down.node.node.group.min.size.reached"
노드 그룹의 크기가 이미 최소이므로 노드를 삭제할 수 없습니다.

"no.scale.down.node.minimal.resource.limits.exceeded"
클러스터 전체의 최소 리소스 한도를 위반하므로 노드를 삭제할 수 없습니다.

"no.scale.down.node.no.place.to.move.pods"
Pod를 이동할 위치가 없으므로 노드를 삭제할 수 없습니다.

"no.scale.down.node.pod.not.backed.by.controller"
컨트롤러가 지원하지 않으므로 Pod가 축소를 차단하고 있습니다. 자세한 내용은 Kubernetes 클러스터 자동 확장 처리 FAQ를 참조하세요.

매개변수: 차단 pod의 이름


"no.scale.down.node.pod.has.local.storage"
pod가 로컬 스토리지를 요청하므로 축소를 차단하고 있습니다. 자세한 내용은 Kubernetes 클러스터 자동 확장 처리 FAQ를 참조하세요.

매개변수: 차단 pod의 이름


"no.scale.down.node.pod.not.safe.to.evict.annotation"
Pod에 '제거가 안전하지 않음' 주석이 있으므로 Pod가 축소를 차단하고 있습니다. 자세한 내용은 Kubernetes 클러스터 자동 확장 처리 FAQ를 참조하세요.

매개변수: 차단 pod의 이름


"no.scale.down.node.pod.kube.system.unmovable"
pod가 daemonset가 아니고 미러링되지 않으며 pdb 할당되지 않은 kube-system pod이므로 축소를 차단하고 있습니다. 자세한 내용은 Kubernetes 클러스터 자동 확장 처리 FAQ를 참조하세요.

매개변수: 차단 pod의 이름


"no.scale.down.node.pod.not.enough.pdb"
남은 PodDisruptionBudget이 충분하지 않아 pod가 축소를 차단하고 있습니다. 자세한 내용은 Kubernetes 클러스터 자동 확장 처리 FAQ를 참조하세요.

매개변수: 차단 pod의 이름

다음 단계