Kubelet

Supported OS Linux Mac OS Windows

통합 버전10.0.0

To find out if this integration is available in your organization, see your Datadog Integrations page or ask your organization administrator.

To initiate an exception request to enable this integration for your organization, email support@ddog-gov.com.

개요

이 통합은 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 지원 팀에 문의하세요.