이 페이지에서는 Google Kubernetes Engine (GKE) 워크로드 및 기본 클러스터 노드의 시작 지연 시간을 모니터링하는 데 사용할 수 있는 측정항목과 대시보드를 설명합니다. 이 측정항목을 사용하여 시작 지연 시간을 추적, 문제 해결, 줄일 수 있습니다.
이 페이지는 워크로드의 시작 지연 시간을 모니터링하고 최적화해야 하는 플랫폼 관리자 및 운영자를 위해 작성되었습니다. Google Cloud 콘텐츠에서 참조하는 일반적인 역할에 대해 자세히 알아보려면 일반 GKE Enterprise 사용자 역할 및 작업을 참고하세요.
개요
시작 지연 시간은 애플리케이션이 트래픽 급증에 응답하는 방식, 중단에서 복구되는 복제본의 속도, 클러스터 및 워크로드의 운영 비용 효율성에 큰 영향을 미칩니다. 워크로드의 시작 지연 시간을 모니터링하면 지연 시간 저하를 감지하고 워크로드 및 인프라 업데이트가 시작 지연 시간에 미치는 영향을 추적하는 데 도움이 됩니다.
워크로드 시작 지연 시간을 최적화하면 다음과 같은 이점이 있습니다.
- 트래픽이 급증하는 동안 사용자에게 서비스가 응답하는 지연 시간을 줄입니다.
- 새 복제본이 생성되는 동안 수요 급증을 흡수하는 데 필요한 초과 제공 용량을 줄입니다.
- 일괄 컴퓨팅 중에 이미 배포되었으며 나머지 리소스가 시작될 때까지 대기 중인 리소스의 유휴 시간을 줄입니다.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화하세요. 이전에 gcloud CLI를 설치한 경우
gcloud components update
를 실행하여 최신 버전을 가져옵니다.
Cloud Logging 및 Cloud Monitoring API를 사용 설정합니다.
요구사항
워크로드의 시작 지연 시간에 관한 측정항목과 대시보드를 보려면 GKE 클러스터가 다음 요구사항을 충족해야 합니다.
- GKE 버전 1.31.1-gke.1678000 이상이 필요합니다.
- 시스템 측정항목 수집을 구성해야 합니다.
- 시스템 로그 수집을 구성해야 합니다.
- 클러스터에서
POD
구성요소를 사용하여 Kubernetes 상태 측정항목을 사용 설정하여 포드 및 컨테이너 측정항목을 확인합니다.
필수 역할 및 권한
로그 생성을 사용 설정하고 로그에 액세스하고 처리하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
GKE 클러스터, 노드, 워크로드 보기:
프로젝트의 Kubernetes Engine 뷰어 (
roles/container.viewer
) -
시작 지연 시간 측정항목에 액세스하고 대시보드를 확인합니다.
프로젝트의 모니터링 뷰어 (
roles/monitoring.viewer
) -
지연 시간 정보(예: Kubelet 이미지 가져오기 이벤트)가 포함된 로그에 액세스하고 로그 탐색기 및 로그 분석에서 로그를 확인합니다.
프로젝트의 로그 뷰어 (
roles/logging.viewer
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
시작 지연 시간 측정항목
시작 지연 시간 측정항목은 GKE 시스템 측정항목에 포함되며 GKE 클러스터와 동일한 프로젝트의 Cloud Monitoring으로 내보내집니다.
이 테이블의 Cloud Monitoring 측정항목 이름에는 kubernetes.io/
프리픽스를 붙여야 합니다. 테이블의 항목에서는 이 프리픽스가 생략되었습니다.
측정항목 유형 (리소스 계층 구조 수준) 표시 이름 |
|
---|---|
종류, 유형, 단위
모니터링 리소스 |
설명 라벨 |
pod/latencies/pod_first_ready
(프로젝트)
포드 첫 준비 지연 시간 |
|
GAUGE , Double , s
k8s_pod |
이미지 가져오기를 포함한 포드 엔드 투 엔드 시작 지연 시간 (포드 Created 에서 Ready 까지)입니다. 60초마다 샘플링됩니다. |
node/latencies/startup
(프로젝트)
노드 시작 지연 시간 |
|
GAUGE , INT64 , s
k8s_node |
GCE 인스턴스의 CreationTimestamp 에서 Kubernetes node ready 로 처음 전환될 때 노드의 총 시작 지연 시간입니다. 60초마다 샘플링됩니다.accelerator_family : 하드웨어 가속기를 기반으로 노드를 분류합니다(gpu , tpu , cpu ).
kube_control_plane_available : KCP (kube 제어 영역)를 사용할 수 있을 때 노드 생성 요청이 수신되었는지 여부입니다.
|
autoscaler/latencies/per_hpa_recommendation_scale_latency_seconds
(프로젝트)
HPA 추천 확장 지연 시간별 |
|
GAUGE , DOUBLE , s
k8s_scale |
HPA 타겟의 수평형 포드 자동 확장 처리 (HPA) 확장 추천 지연 시간 (측정항목이 생성되고 해당 확장 추천이 API 서버에 적용되는 시점 사이의 시간)입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 20초 동안 표시되지 않습니다.metric_type : 측정항목 소스의 유형입니다. "ContainerResource" , "External" , "Object" , "Pods" 또는 "Resource" 중 하나여야 합니다.
|
워크로드의 시작 지연 시간 대시보드 보기
워크로드의 시작 지연 시간 대시보드는 배포에서만 사용할 수 있습니다. 배포의 시작 지연 시간 측정항목을 보려면 Google Cloud 콘솔에서 다음 단계를 수행합니다.
워크로드 페이지로 이동합니다.
배포 세부정보 뷰를 열려면 검사하려는 워크로드의 이름을 클릭합니다.
관측 가능성 탭을 클릭합니다.
왼쪽 메뉴에서 시작 지연 시간을 선택합니다.
포드의 시작 지연 시간 분포 보기
포드의 시작 지연 시간은 이미지 가져오기를 포함한 총 시작 지연 시간을 나타내며, 포드의 Created
상태에서 Ready
상태까지의 시간을 측정합니다. 다음 두 차트를 사용하여 포드의 시작 지연 시간을 평가할 수 있습니다.
포드 시작 지연 시간 분포 차트: 이 차트는 고정된 3시간 간격(예: 오전 12시~오전 3시, 오전 3시~오전 6시) 동안 포드 시작 이벤트를 관찰하여 계산된 포드 시작 지연 시간 백분위수(50번째 백분위수, 95번째 백분위수, 99번째 백분위수)를 보여줍니다. 이 차트는 다음 목적으로 사용할 수 있습니다.
- 기준 포드 시작 지연 시간을 이해합니다.
- 시간 경과에 따른 포드 시작 지연 시간의 변동을 식별합니다.
- 포드 시작 지연 시간의 변경사항을 워크로드 배포 또는 클러스터 자동 확장 처리 이벤트와 같은 최근 이벤트와 연관시킵니다. 대시보드 상단의 주석 목록에서 이벤트를 선택할 수 있습니다.

Pod Startup Count(Pod 시작 수) 차트: 이 차트는 선택한 시간 간격 동안 시작된 Pod 수를 보여줍니다. 이 차트는 다음 목적으로 사용할 수 있습니다.
- 지정된 시간 간격의 포드 시작 지연 시간 분포 백분위수를 계산하는 데 사용되는 포드 샘플 크기를 이해합니다.
- 워크로드 배포 또는 수평형 포드 자동 확장 처리 이벤트와 같은 포드 시작의 원인을 파악합니다. 대시보드 상단의 주석 목록에서 이벤트를 선택할 수 있습니다.

개별 Pod의 시작 지연 시간 보기
Pod First Ready Latency 타임라인 차트 및 연결된 목록에서 개별 포드의 시작 지연 시간을 확인할 수 있습니다.
- 포드 최초 준비 지연 시간 타임라인 차트를 사용하여 개별 포드 시작을 수평형 포드 자동 크기 조절기 또는 클러스터 자동 크기 조절기 이벤트와 같은 최근 이벤트와 연결합니다. 대시보드 상단의 주석 목록에서 이러한 이벤트를 선택할 수 있습니다. 이 차트를 사용하면 다른 포드와 비교하여 시작 지연 시간의 변경사항이 발생한 원인을 파악할 수 있습니다.
- Pod First Ready Latency 목록을 사용하여 시작하는 데 걸린 시간이 가장 길거나 짧은 개별 포드를 식별합니다. 지연 시간 열을 기준으로 목록을 정렬할 수 있습니다. 시작 지연 시간이 가장 긴 포드를 식별하면 포드 시작 이벤트를 다른 최근 이벤트와 연결하여 지연 시간 저하 문제를 해결할 수 있습니다.

상응하는 포드 생성 이벤트의 timestamp
필드 값을 확인하여 개별 포드가 생성된 시점을 확인할 수 있습니다. timestamp
필드를 보려면 로그 탐색기에서 다음 쿼리를 실행합니다.
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.methodName="io.k8s.core.v1.pods.create" AND
resource.labels.project_id=PROJECT_ID AND
resource.labels.cluster_name=CLUSTER_NAME AND
resource.labels.location=CLUSTER_LOCATION AND
protoPayload.response.metadata.namespace=NAMESPACE AND
protoPayload.response.metadata.name=POD_NAME
워크로드의 모든 포드 생성 이벤트를 나열하려면 위의 쿼리에서 다음 필터를 사용하세요.
protoPayload.response.metadata.name=~"POD_NAME_PREFIX-[a-f0-9]{7,10}-[a-z0-9]{5}"
개별 포드의 지연 시간을 비교하면 다양한 구성이 포드 시작 지연 시간에 미치는 영향을 테스트하고 요구사항에 따라 최적의 구성을 파악할 수 있습니다.
포드 예약 지연 시간 확인
포드 예약 지연 시간은 포드가 생성된 시점과 포드가 노드에 예약된 시점 사이의 시간입니다. 포드 예약 지연 시간은 포드의 엔드 투 엔드 시작 시간에 기여하며 포드 예약 이벤트와 포드 생성 요청의 타임스탬프를 빼서 계산됩니다.
개별 포드 예약 이벤트의 타임스탬프는 해당 포드 예약 이벤트의 jsonPayload.eventTime
필드에서 확인할 수 있습니다. jsonPayload.eventTime
필드를 보려면 로그 탐색기에서 다음 쿼리를 실행합니다.
log_id("events")
jsonPayload.reason="Scheduled"
resource.type="k8s_pod"
resource.labels.project_id=PROJECT_ID
resource.labels.location=CLUSTER_LOCATION
resource.labels.cluster_name=CLUSTER_NAME
resource.labels.namespace_name=NAMESPACE
resource.labels.pod_name=POD_NAME
워크로드의 모든 포드 예약 이벤트를 나열하려면 위의 쿼리에서 다음 필터를 사용합니다.
resource.labels.pod_name=~"POD_NAME_PREFIX-[a-f0-9]{7,10}-[a-z0-9]{5}"
이미지 가져오기 지연 시간 보기
컨테이너 이미지 가져오기 지연 시간은 노드에서 아직 이미지를 사용할 수 없거나 이미지를 새로고침해야 하는 시나리오에서 포드 시작 지연 시간에 영향을 미칩니다. 이미지 가져오기 지연 시간을 최적화하면 클러스터 확장 이벤트 중에 워크로드 시작 지연 시간이 줄어듭니다.
Kubelet 이미지 가져오기 이벤트 표에서 워크로드 컨테이너 이미지가 가져온 시점과 프로세스가 걸린 시간을 확인할 수 있습니다.

이미지 가져오기 지연 시간은 다음과 같은 메시지가 포함된 jsonPayload.message
필드에서 확인할 수 있습니다.
"Successfully pulled image "gcr.io/example-project/image-name" in 17.093s (33.051s including waiting). Image size: 206980012 bytes."
HPA 확장 추천의 지연 시간 분포 보기
HPA 타겟의 수평형 포드 자동 확장 처리 (HPA) 확장 추천 지연 시간은 측정항목이 생성된 시점과 해당 확장 추천이 API 서버에 적용되는 시점 사이의 시간입니다. HPA 확장 추천 지연 시간을 최적화하면 확장 이벤트 중에 워크로드 시작 지연 시간이 줄어듭니다.
HPA 확장은 다음 두 차트에서 확인할 수 있습니다.
HPA 확장 추천 지연 시간 분포 차트: 이 차트에는 최근 3시간 간격 동안 HPA 확장 추천을 관찰하여 계산된 HPA 확장 추천 지연 시간의 백분위수 (50번째 백분위수, 95번째 백분위수, 99번째 백분위수)가 표시됩니다. 이 차트는 다음과 같은 목적으로 사용할 수 있습니다.
- 기준 HPA 확장 추천 지연 시간을 파악합니다.
- 시간 경과에 따른 HPA 확장 추천 지연 시간의 변동을 식별합니다.
- HPA 확장 추천 지연 시간의 변화를 최근 이벤트와 연관시킵니다. 대시보드 상단의 주석 목록에서 이벤트를 선택할 수 있습니다.

HPA 확장 추천 수 차트: 이 차트에는 선택한 시간 간격 동안 관찰된 HPA 확장 추천 수가 표시됩니다. 차트는 다음 작업에 사용합니다.
- HPA 확장 추천 샘플 크기를 이해합니다. 샘플은 지정된 시간 간격의 HPA 확장 추천 지연 시간 분포에서 백분위수를 계산하는 데 사용됩니다.
- HPA 확장 추천을 새 포드 시작 이벤트 및 수평형 포드 자동 확장 처리 이벤트와 연결합니다. 대시보드 상단의 주석 목록에서 이벤트를 선택할 수 있습니다.

포드의 예약 문제 보기
포드 예약 문제는 워크로드의 엔드 투 엔드 시작 지연 시간에 영향을 줄 수 있습니다. 워크로드의 엔드 투 엔드 시작 지연 시간을 줄이려면 이러한 문제를 해결하고 그 수를 줄이세요.
다음은 이러한 문제를 추적하는 데 사용할 수 있는 두 가지 차트입니다.
- 예약할 수 없음/대기 중/실패한 포드 차트에는 시간 경과에 따른 예약할 수 없는 포드, 대기 중인 포드, 실패한 포드 수가 표시됩니다.
- 백오프/대기 중/준비 실패 컨테이너 차트에는 시간 경과에 따른 이러한 상태의 컨테이너 수가 표시됩니다.
노드의 시작 지연 시간 대시보드 보기
노드의 시작 지연 시간 측정항목을 보려면 Google Cloud 콘솔에서 다음 단계를 수행합니다.
Kubernetes 클러스터 페이지로 이동합니다.
클러스터 세부정보 뷰를 열려면 검사하려는 클러스터의 이름을 클릭합니다.
관측 가능성 탭을 클릭합니다.
왼쪽 메뉴에서 시작 지연 시간을 선택합니다.
노드 시작 지연 시간 분포 보기
노드의 시작 지연 시간은 노드의 CreationTimestamp
에서 Kubernetes node ready
상태까지의 시간을 측정하는 총 시작 지연 시간을 나타냅니다. 노드 시작 지연 시간은 다음 두 차트에서 확인할 수 있습니다.
노드 시작 지연 시간 분포 차트: 이 차트는 고정된 3시간 간격(예: 오전 12시~오전 3시, 오전 3시~오전 6시) 동안 노드 시작 이벤트 관찰을 기반으로 계산된 노드 시작 지연 시간의 백분위수(50번째 백분위수, 95번째 백분위수, 99번째 백분위수)를 보여줍니다. 이 차트는 다음 목적으로 사용할 수 있습니다.
- 기준 노드 시작 지연 시간을 이해합니다.
- 시간 경과에 따른 노드 시작 지연 시간의 변동을 식별합니다.
- 노드 시작 지연 시간의 변화를 클러스터 업데이트 또는 노드 풀 업데이트와 같은 최근 이벤트와 연관시킵니다. 대시보드 상단의 주석 목록에서 이벤트를 선택할 수 있습니다.

노드 시작 수 차트: 이 차트에는 선택한 시간 간격 동안 시작된 노드 수가 표시됩니다. 차트는 다음과 같은 목적으로 사용할 수 있습니다.
- 지정된 시간 간격의 노드 시작 지연 시간 분포 백분위수를 계산하는 데 사용되는 노드 샘플 크기를 이해합니다.
- 노드 풀 업데이트 또는 클러스터 자동 확장 처리 이벤트와 같은 노드 시작의 원인을 파악합니다. 대시보드 상단의 주석 목록에서 이벤트를 선택할 수 있습니다.

개별 노드의 시작 지연 시간 보기
개별 노드의 지연 시간을 비교하면 다양한 노드 구성이 노드 시작 지연 시간에 미치는 영향을 테스트하고 요구사항에 따라 최적의 구성을 파악할 수 있습니다. 노드 시작 지연 시간 타임라인 차트 및 연결된 목록에서 개별 노드의 시작 지연 시간을 볼 수 있습니다.
노드 시작 지연 시간 타임라인 차트를 사용하여 개별 노드 시작을 클러스터 업데이트 또는 노드 풀 업데이트와 같은 최근 이벤트와 연관시킵니다. 다른 노드와 비교하여 시작 지연 시간의 변경사항에 대한 잠재적 원인을 파악할 수 있습니다. 대시보드 상단의 주석 목록에서 이벤트를 선택할 수 있습니다.
노드 시작 지연 시간 목록을 사용하여 시작하는 데 걸린 시간이 가장 길거나 짧은 개별 노드를 식별합니다. 지연 시간 열을 기준으로 목록을 정렬할 수 있습니다. 시작 지연 시간이 가장 긴 노드를 식별하면 노드 시작 이벤트를 다른 최근 이벤트와 연결하여 지연 시간 저하 문제를 해결할 수 있습니다.

상응하는 노드 생성 이벤트에서 protoPayload.metadata.creationTimestamp
필드의 값을 확인하여 개별 노드가 생성된 시점을 확인할 수 있습니다. protoPayload.metadata.creationTimestamp
필드를 보려면 로그 탐색기에서 다음 쿼리를 실행합니다.
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.methodName="io.k8s.core.v1.nodes.create" AND
resource.labels.project_id=PROJECT_ID AND
resource.labels.cluster_name=CLUSTER_NAME AND
resource.labels.location=CLUSTER_LOCATION AND
protoPayload.response.metadata.name=NODE_NAME
노드 풀에서 시작 지연 시간 보기
노드 풀의 구성이 다른 경우(예: 서로 다른 워크로드를 실행하기 위해) 노드 풀별로 노드 시작 지연 시간을 별도로 모니터링해야 할 수 있습니다. 노드 풀 간에 노드 시작 지연 시간을 비교하면 노드 구성이 노드 시작 지연 시간에 미치는 영향에 대한 유용한 정보를 얻을 수 있으며, 이를 토대로 지연 시간을 최적화할 수 있습니다.
기본적으로 노드 시작 지연 시간 대시보드에는 클러스터의 모든 노드 풀에 걸쳐 집계된 시작 지연 시간 분포와 개별 노드 시작 지연 시간이 표시됩니다. 특정 노드 풀의 노드 시작 지연 시간을 보려면 대시보드 상단에 있는 $node_pool_name_var
필터를 사용하여 노드 풀의 이름을 선택합니다.
다음 단계
- 측정항목을 기반으로 포드 자동 확장을 최적화하는 방법을 알아보세요.
- GKE에서 콜드 스타트 지연 시간을 줄이는 방법을 자세히 알아보세요.
- 이미지 스트리밍으로 이미지 가져오기 지연 시간을 줄이는 방법을 알아보세요.
- 수평형 포드 자동 확장 조정의 놀라운 경제성을 알아보세요.
- 자동 애플리케이션 모니터링으로 워크로드를 모니터링합니다.