Kubernetes API Server
설정¶
Kubernetes에 DataKit 설치¶
수집기 설정¶
다음 ConfigMap을 생성하여 수집기 구성을 관리합니다:
apiVersion: v1
kind: ConfigMap
metadata:
name: datakit-conf
namespace: datakit
data:
kube-apiserver.conf: |-
[inputs.kubernetesprometheus]
[[inputs.kubernetesprometheus.instances]]
role = "pod"
namespaces = ["kube-system"]
selector = "component=kube-apiserver,tier=control-plane"
scrape = "true"
scheme = "https"
port = "6443"
path = "/metrics"
scrape_interval = "60s"
node_local = "ture"
[inputs.kubernetesprometheus.instances.custom]
measurement = "kube_apiserver"
job_as_measurement = false
[inputs.kubernetesprometheus.instances.custom.tags]
cluster_name_k8s = "fill-your-cluster-name"
instance = "__kubernetes_mate_instance"
pod_name = "__kubernetes_pod_name"
pod_namespace = "__kubernetes_pod_namespace"
node_name = "__kubernetes_pod_node_name"
[inputs.kubernetesprometheus.instances.auth]
bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token"
[inputs.kubernetesprometheus.instances.auth.tls_config]
insecure_skip_verify = false
ca_certs = ["/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"]
자세한 설정은 Kubernetes Prometheus Discovery를 참고하세요.
Datakit에 설정 파일 마운트하기¶
Datakit 리소스 파일을 수정하고 수집 설정을 마운트하면 해당 수집기를 활성화할 수 있습니다:
apiVersion: apps/v1
kind: DaemonSet
...
spec:
...
template:
...
spec:
...
containers:
...
volumeMounts:
...
- name: datakit-conf-kube-apiserver
subPath: kube-apiserver.conf
mountPath: /usr/local/datakit/conf.d/kubernetesprometheus/kube-apiserver.conf
volumes:
...
- name: datakit-conf-kube-apiserver
configMap:
name: datakit-conf-kube-apiserver
지표¶
아래 목록은 핵심 지표와 설명입니다:
| 지표 | 지표 유형 | 설명 |
|---|---|---|
apiserver_request_total |
Counter | verb, dry_run, group, version, resource, scope, component, code별 요청 수를 집계 |
apiserver_current_inflight_requests |
Gauge | request_kind별 현재 읽기/쓰기 요청 수를 집계 |
apiserver_request_terminations_total |
Counter | code, component, group, resource, scope, subresource, verb, version별로 자기 보호를 위해 폐기된 요청 수를 집계 |
apiserver_request_duration_seconds_bucket |
Histogram | verb, dry_run, group, version, resource, subresource, scope, component별 응답 지연 분포를 집계 |
etcd_request_duration_seconds_bucket |
Histogram | operation, type별 Etcd 응답 지연 분포를 집계 |
apiserver_admission_controller_admission_duration_seconds_bucket |
Histogram | name, operation, rejected, type별 승인 컨트롤러 지연 분포를 집계 |
apiserver_admission_webhook_admission_duration_seconds_bucket |
Histogram | name, operation, rejected, type별 승인 Webhook 응답 지연 분포를 집계 |
workqueue_queue_duration_seconds_bucket |
Histogram | name별 요청이 작업 큐에 머문 시간 분포를 집계 |
workqueue_work_duration_seconds_bucket |
Histogram | name별 큐에서의 요청 처리 시간 분포를 집계 |
apiserver_storage_objects |
Gauge | resource별 최신 리소스 수를 집계 |