Kubelet

Supported OS Linux Mac OS Windows

통합 버전10.0.0

개요

이 통합은 kubelet에서 컨테이너 메트릭을 가져옵니다.

  • kubelet 통계 시각화 및 모니터링
  • kubelet 장애 조치 및 이벤트에 대한 알림 확인

설정

설치

Kubelet 검사는 Datadog Agent 패키지에 포함되어 있으므로 서버에 추가 설치가 필요 없습니다.

설정

Agent 구성 디렉터리 루트의 conf.d/ 폴더에 있는 kubelet.d/conf.yaml 파일을 편집합니다. 사용 가능한 모든 구성 옵션은 샘플 kubelet.d/conf.yaml을 참조하세요.

검증

Agent 상태 하위 명령을 실행하고 Checks 섹션에서 kubelet를 찾습니다.

호환성

kubelet 점검 은 두 가지 모드로 실행할 수 있습니다.

  • 기본 프로메테우스 모드는 쿠버네티스(Kubernetes) 버전 1.7.6 이상에서 호환됩니다.
  • cAdvisor 모드(cadvisor_port 옵션을 설정하여 활성화)는 버전 1.3 이상에서 호환되어야 합니다. 일관된 태깅 및 필터링을 사용하려면 에이전트 버전 6.2 이상이 필요합니다.

OpenShift <3.7 지원

cAdvisor 4194 포트는 OpenShift에서 기본적으로 비활성화되어 있습니다. 활성화하려면 다음을 추가해야 합니다. 노드 구성 파일에 다음 줄을 추가해야 합니다.

kubeletArguments:
  cadvisor-port: ["4194"]

포트를 열 수 없는 경우 설정을 통해 컨테이너 메트릭 컬렉션의 두 소스를 모두 비활성화하세요.

  • cadvisor_port0
  • metrics_endpoint""

점검은 여전히 다음을 수집할 수 있습니다.

  • kubelet 상태 서비스 점검
  • 포드 실행/중지 메트릭
  • 포드 제한 및 요청
  • 노드 캐파 메트릭

수집한 데이터

Metrics

kubernetes.containers.last_state.terminated
(gauge)
이전에 종료된 컨테이너 수
kubernetes.pods.running
(gauge)
실행 중인 포드 수
kubernetes.pods.expired
(gauge)
점검이 무시하고 만료된 포드의 수
kubernetes.containers.running
(gauge)
실행 중인 컨테이너의 수
kubernetes.containers.restarts
(gauge)
컨테이너가 재시작된 횟수
kubernetes.containers.state.terminated
(gauge)
현재 종료된 컨테이너의 수
kubernetes.containers.state.waiting
(gauge)
현재 대기 중인 컨테이너의 수
kubernetes.cpu.load.10s.avg
(gauge)
지난 10초 동안의 컨테이너 CPU 로드 평균
kubernetes.cpu.system.total
(gauge)
시스템 시간에 사용되는 코어 수
core로 표시
kubernetes.cpu.user.total
(gauge)
사용자 시간 동안 사용된 코어 수
core로 표시
kubernetes.cpu.cfs.periods
(gauge)
경과된 시행 기간 간격 수
kubernetes.cpu.cfs.throttled.periods
(gauge)
스로틀링된 기간 간격 수
kubernetes.cpu.cfs.throttled.seconds
(gauge)
컨테이너가 스로틀링된 총 기간
kubernetes.cpu.capacity
(gauge)
이 머신의 코어 수(Kubernetes v1.18까지 사용 가능)
core로 표시
kubernetes.cpu.usage.total
(gauge)
사용된 코어 수
nanocore로 표시
kubernetes.cpu.limits
(gauge)
설정된 CPU 코어 제한
core로 표시
kubernetes.cpu.requests
(gauge)
The requested cpu cores
core로 표시
kubernetes.filesystem.usage
(gauge)
사용된 디스크의 양
byte로 표시
kubernetes.filesystem.usage_pct
(gauge)
사용된 디스크의 백분율
fraction으로 표시
kubernetes.io.read_bytes
(gauge)
디스크에서 읽은 바이트 수
byte로 표시.
kubernetes.io.write_bytes
(gauge)
디스크에 기록된 바이트 수
byte로 표시.
kubernetes.memory.capacity
(gauge)
이 머신의 메모리 양(바이트 단위)(Kubernetes v1.18까지 사용 가능)
byte로 표시
kubernetes.memory.limits
(gauge)
메모리 한도 설정
byte로 표시
kubernetes.memory.sw_limit
(gauge)
스왑 공간 제한 설정
byte로 표시
kubernetes.memory.requests
(gauge)
요청된 메모리
byte로 표시
kubernetes.memory.usage
(gauge)
액세스 시점과 관계없이 모든 메모리를 포함한 바이트 단위의 현재 메모리 사용량
byte로 표시
kubernetes.memory.working_set
(gauge)
현재 작업 설정(바이트 단위) - OOM 킬러가 주시하는 대상
byte로 표시
kubernetes.memory.cache
(gauge)
디스크에서 데이터를 캐시하는 데 사용되는 메모리 양(예: 블록 디바이스의 블록과 정확하게 연관될 수 있는 메모리 콘텐츠)
byte로 표시
kubernetes.memory.rss
(gauge)
바이트 단위의 RSS 크기
byte로 표시
kubernetes.memory.swap
(gauge)
이 cgroup의 프로세스가 현재 사용하는 스왑 양
byte로 표시
kubernetes.memory.usage_pct
(gauge)
포드당 사용되는 메모리 비율(메모리 제한을 설정해야 함)
fraction으로 표시
kubernetes.memory.sw_in_use
(gauge)
사용된 스왑 공간의 비율
fraction으로 표시
kubernetes.network.rx_bytes
(gauge)
수신된 초당 바이트 수
byte로 표시
kubernetes.network.rx_dropped
(gauge)
초당 삭제되는 수신 패킷의 양
packet으로 표시
kubernetes.network.rx_errors
(gauge)
초당 rx 오류의 양
error로 표시
kubernetes.network.tx_bytes
(gauge)
전송되는 초당 바이트 수
byte로 표시
kubernetes.network.tx_dropped
(gauge)
초당 삭제되는 tx 패킷의 양
packet으로 표시
kubernetes.network.tx_errors
(gauge)
초당 tx 오류 발생량
error로 표시
kubernetes.diskio.io_service_bytes.stats.total
(gauge)
컨테이너가 사용하는 디스크 공간의 양
byte로 표시
kubernetes.apiserver.certificate.expiration.count
(gauge)
요청을 인증하는 데 사용된 인증서의 남은 수명 수
second로 표시
kubernetes.apiserver.certificate.expiration.sum
(gauge)
요청을 인증하는 데 사용된 인증서의 남은 수명의 합계
second로 표시
kubernetes.rest.client.requests
(gauge)
HTTP 요청 수
operation으로 표시
kubernetes.rest.client.latency.count
(gauge)
동사 및 URL별로 세분화된 요청 대기 시간(초) 수
kubernetes.rest.client.latency.sum
(gauge)
동사 및 URL별로 세분화된 요청 지연 시간(초)의 합계
second로 표시
kubernetes.kubelet.pleg.discard_events
(count)
PLEG의 폐기 이벤트 수
kubernetes.kubelet.pleg.last_seen
(gauge)
PLEG가 마지막으로 활성화된 것으로 확인된 시간(초)
second로 표시
kubernetes.kubelet.pleg.relist_duration.count
(gauge)
PLEG에 재등록된 포드 수
kubernetes.kubelet.pleg.relist_duration.sum
(gauge)
PLEG에서 포드를 재상장하는 데 걸린 기간(초)의 합계
second로 표시
kubernetes.kubelet.pleg.relist_interval.count
(gauge)
PLEG에 재상장된 포드의 수
second로 표시
kubernetes.kubelet.pleg.relist_interval.sum
(gauge)
PLEG 재등록 간격(초)의 합계
kubernetes.kubelet.runtime.operations
(count)
런타임 작업 수
operation으로 표시
kubernetes.kubelet.runtime.errors
(gauge)
누적 런타임 작업 오류 수
operation으로 표시
kubernetes.kubelet.runtime.operations.duration.sum
(gauge)
작업 기간의 합계
operation으로 표시.
kubernetes.kubelet.runtime.operations.duration.count
(gauge)
작업 개수
kubernetes.kubelet.network_plugin.latency.sum
(gauge)
네트워크 플러그인 작업의 지연 시간(마이크로초)의 합계
microsecond로 표시
kubernetes.kubelet.network_plugin.latency.count
(gauge)
지연 시간별 네트워크 플러그인 작업 수
kubernetes.kubelet.network_plugin.latency.quantile
(gauge)
지연 시간별 네트워크 플러그인 작업의 백분위수
kubernetes.kubelet.volume.stats.available_bytes
(gauge)
볼륨에서 사용 가능한 바이트 수
byte로 표시
kubernetes.kubelet.volume.stats.capacity_bytes
(gauge)
볼륨의 바이트 단위 용량
byte로 표시
kubernetes.kubelet.volume.stats.used_bytes
(gauge)
볼륨에서 사용된 바이트 수
byte로 표시
kubernetes.kubelet.volume.stats.inodes
(gauge)
볼륨의 최대 Inode 수
inode로 표시
kubernetes.volume.stats.inodes_free
(gauge)
볼륨의 사용 가능한 Inode 수
inode로 표시
kubernetes.kubelet.volume.stats.inodes_used
(gauge)
볼륨에서 사용된 Inode 수
inode로 표시
kubernetes.ephemeral_storage.limits
(gauge)
컨테이너의 임시 저장소 제한(Kubernetes v1.8 이상 필요)
byte로 표시
kubernetes.ephemeral_storage.requests
(gauge)
컨테이너의 임시 스토리지 요청(Kubernetes v1.8 이상 필요)
byte로 표시
kubernetes.ephemeral_storage.usage
(gauge)
POD의 임시 저장소 사용량
byte로 표시
kubernetes.kubelet.evictions
(count)
Kubelet에서 퇴출된 포드 수(Kubernetes v1.16의 ALPHA)
kubernetes.kubelet.cpu.usage
(gauge)
Kubelet에서 사용하는 코어 수
nanocore로 표시
kubernetes.kubelet.memory.usage
(gauge)
현재 Kubelet 메모리 사용량(바이트 단위)
byte로 표시
kubernetes.kubelet.memory.rss
(gauge)
바이트 단위의 Kubelet RSS 크기
byte로 표시
kubernetes.runtime.cpu.usage
(gauge)
런타임에서 사용하는 코어 수
nanocore로 표시
kubernetes.runtime.memory.usage
(gauge)
현재 런타임 메모리 사용량(바이트 단위)
byte로 표시
kubernetes.runtime.memory.rss
(gauge)
런타임 RSS의 바이트 크기
byte로 표시
kubernetes.kubelet.container.log_filesystem.used_bytes
(gauge)
파일 시스템에서 컨테이너의 로그가 사용하는 바이트(Kubernetes 1.14 이상 필요)
byte로 표시.
kubernetes.kubelet.pod.start.duration
(gauge)
단일 포드가 보류 중 상태에서 실행 중으로 전환되는 데 걸리는 시간(마이크로초)
microsecond로 표시
kubernetes.kubelet.pod.worker.duration
(gauge)
단일 포드를 동기화하는 데 걸리는 시간(마이크로초). 작업 유형별 분류: 생성, 업데이트 또는 동기화
microsecond로 표시
kubernetes.kubelet.pod.worker.start.duration
(gauge)
포드 확인부터 워커 시작까지 걸리는 시간(마이크로초)
microsecond로 표시
kubernetes.kubelet.docker.operations
(count)
도커 작업의 수
operation으로 표시
kubernetes.kubelet.docker.errors
(count)
도커 작업 오류 수
operation으로 표시
kubernetes.kubelet.docker.operations.duration.sum
(gauge)
도커 작업 기간의 합계
operation으로 표시
kubernetes.kubelet.docker.operations.duration.count
(gauge)
도커 작업 개수
kubernetes.go_threads
(gauge)
생성된 OS 스레드 수
kubernetes.go_goroutines
(gauge)
현재 존재하는 고루틴 수
kubernetes.liveness_probe.success.total
(gauge)
컨테이너의 누적 생존 프로브 성공 횟수(Kubernetes v1.15의 ALPHA)
kubernetes.liveness_probe.failure.total
(gauge)
컨테이너의 실패한 누적 라이브니스 프로브 횟수(Kubernetes v1.15의 ALPHA)
kubernetes.readiness_probe.success.total
(gauge)
컨테이너의 성공적인 준비 상태 프로브 누적 횟수(Kubernetes v1.15의 ALPHA)
kubernetes.readiness_probe.failure.total
(gauge)
컨테이너의 준비 상태 프로브 실패 누적 횟수(Kubernetes v1.15의 ALPHA)
kubernetes.startup_probe.success.total
(gauge)
컨테이너의 성공적인 시작 프로브 누적 횟수(Kubernetes v1.15의 ALPHA)
kubernetes.startup_probe.failure.total
(gauge)
컨테이너의 시작 프로브 실패 누적 횟수(Kubernetes v1.15의 ALPHA)
kubernetes.node.filesystem.usage
(gauge)
노드 수준에서 사용된 디스크의 양
byte로 표시
kubernetes.node.filesystem.usage_pct
(gauge)
노드 수준에서 사용된 디스크 공간의 백분율
fraction으로 표시
kubernetes.node.image.filesystem.usage
(gauge)
이미지 파일시스템에서 사용되는 디스크 용량(노드 수준)
byte로 표시
kubernetes.node.image.filesystem.usage_pct
(gauge)
사용된 디스크 비율(노드 수준)
fraction으로 표시

서비스 점검

kubernetes.kubelet.check.ping

Kubelet이 Ping에 응답하지 않으면 CRITICAL을 반환합니다. 그 외에는 OK를 반환합니다.

상태: ok, critical

kubernetes.kubelet.check.docker

Docker 서비스가 Kubelet에서 실행되지 않으면 CRITICAL을 반환합니다. 그 외에는 OK를 반환합니다.

상태: ok, critical

kubernetes.kubelet.check.syncloop

싱클루프 상태 점검이 중단되면 CRITICAL을 반환합니다. 그 외에는 OK를 반환합니다.

상태: ok, critical

kubernetes.kubelet.check

전체 Kubelet 상태 점검이 중단된 경우 CRITICAL을 반환합니다. 그 외에는 OK를 반환합니다.

상태: ok, critical

제외된 컨테이너

수집된 데이터를 배포된 컨테이너의 하위 집합으로 제한하려면 DD_CONTAINER_EXCLUDE 환경 변수를 설정하세요. 해당 환경 변수에 지정된 컨테이너에서는 메트릭이 포함되지 않습니다.

포드 수준에서 보고된 네트워크 메트릭의 경우, 다른 컨테이너가 동일한 포드에 속할 수 있으므로 name 또는 image name을 기준으로 컨테이너를 제외할 수 없다. 따라서 DD_CONTAINER_EXCLUDE가 네임스페이스에 적용되는 경우, 포드가 해당 네임스페이스에 있으면 포드-수준 메트릭은 보고되지 않습니다. 그러나 DD_CONTAINER_EXCLUDE가 컨테이너 이름 또는 이미지 이름을 참조하는 경우, 제외 규칙이 포드의 일부 컨테이너에 적용되더라도 포드 수준 메트릭이 보고됩니다.

트러블슈팅

도움이 필요하세요? Datadog 지원 팀에 문의하세요.