Kubelet
Kubelet 지표 정보 수집
구성¶
사전 조건¶
- K8s 환경이 설치되어 있음
수집기 설정¶
datakit.yaml파일의ConfigMap에kubernetesprometheus.conf리소스를 추가하여 Kubelet의 지표 데이터를 수집합니다
apiVersion: v1
kind: ConfigMap
metadata:
name: datakit-conf
namespace: datakit
data:
kubelet.conf: |-
[inputs.kubernetesprometheus]
[[inputs.kubernetesprometheus.instances]]
role = "node"
selector = "kubernetes.io/os=linux"
scrape = "true"
scheme = "https"
port = "__kubernetes_node_kubelet_endpoint_port"
path = "/metrics"
params = ""
interval = "15s"
[inputs.kubernetesprometheus.instances.custom]
measurement = "kubelet"
job_as_measurement = true
[inputs.kubernetesprometheus.instances.custom.tags]
instance = "__kubernetes_mate_instance"
cluster_name_k8s = "default"
job = "kubelet"
[inputs.kubernetesprometheus.instances.auth]
bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token"
[inputs.kubernetesprometheus.instances.auth.tls_config]
insecure_skip_verify = true
cert = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
[[inputs.kubernetesprometheus.instances]]
role = "node"
selector = "kubernetes.io/os=linux"
scrape = "true"
scheme = "https"
port = "__kubernetes_node_kubelet_endpoint_port"
path = "/metrics/cadvisor"
params = ""
interval = "15s"
[inputs.kubernetesprometheus.instances.custom]
measurement = "cadvisor"
job_as_measurement = true
[inputs.kubernetesprometheus.instances.custom.tags]
instance = "__kubernetes_mate_instance"
cluster_name_k8s = "default"
job = "kubelet"
node = "__kubernetes_node_name"
label_alpha_eksctl_io_nodegroup_name = "__kubernetes_node_label_alpha.eksctl.io/nodegroup-name"
[inputs.kubernetesprometheus.instances.auth]
bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token"
[inputs.kubernetesprometheus.instances.auth.tls_config]
insecure_skip_verify = true
cert = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
kubernetesprometheus.conf를 DataKit의/usr/local/datakit/conf.d/kubernetesprometheus/kubernetesprometheus.conf아래에 마운트합니다
- mountPath: /usr/local/datakit/conf.d/kubernetesprometheus/kubernetesprometheus.conf
name: datakit-conf
subPath: kubernetesprometheus.conf
- 다음 명령을 실행하여 DataKit을 재시작합니다
지표¶
kubelet 지표 집합¶
Kubelet 지표는 kubelet 지표 집합에 있으며, 여기서는 Kubelet 지표와 관련된 설명을 소개합니다
| Metrics | 설명 | 단위 |
|---|---|---|
kubelet_node_name |
Kubelet이 위치한 노드 |
count |
kubelet_running_pods |
현재 노드에서 실행 중인 Pod 수 |
count |
kubelet_running_containers |
현재 노드에서 실행 중인 컨테이너 수 |
count |
volume_manager_total_volumes |
현재 노드에서 관리되는 볼륨의 총수 |
count |
volume_manager_total_volumes |
Kubelet이 수행한 컨테이너 런타임 작업의 총수 |
count |
kubelet_runtime_operations_total |
Kubelet이 수행한 컨테이너 런타임 작업의 실패 횟수 |
count |
kubelet_runtime_operations_errors_total |
Kubelet이 수행한 컨테이너 런타임 작업의 지속 시간 분포 |
s |
kubelet_runtime_operations_duration_seconds_bucket |
Kubelet이 Pod를 시작한 총 횟수 |
count |
kubelet_pod_start_duration_seconds_count |
Kubelet이 Pod를 시작하는 데 걸린 시간 분포 |
s |
kubelet_pod_start_duration_seconds_bucket |
저장 작업의 총 횟수 |
count |
storage_operation_duration_seconds_count |
저장 작업 실패의 총 횟수 |
count |
storage_operation_errors_total |
Kubelet의 cgroup 관리 작업 총수 |
count |
kubelet_cgroup_manager_duration_seconds_count |
Kubelet의 cgroup 관리 작업 지속 시간 분포 |
s |
kubelet_cgroup_manager_duration_seconds_bucket |
Kubelet의 Pod 수명 주기 이벤트 생성기(PLEG) 재목록 작업 총수 |
count |
kubelet_pleg_relist_duration_seconds_count |
Kubelet이 Kubernetes API Server로 보낸 REST 요청 총수 |
count |
rest_client_requests_total |
Kubelet이 Kubernetes API Server로 보낸 REST 요청의 지속 시간 분포 |
count |
rest_client_request_duration_seconds_bucket |
Kubelet 프로세스가 차지하는 물리 메모리 크기 |
byte |
process_resident_memory_bytes |
Kubelet 프로세스가 차지하는 CPU 시간 총합 |
s |
process_cpu_seconds_total |
Kubelet 프로세스가 차지하는 CPU 시간 총합 |
s |
go_goroutines |
Kubelet 프로세스에서 활성 상태인 Go 코루틴 수 |
count |