コンテンツにスキップ

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 ごとの最新のリソース数を集計します

フィードバック

このページは役に立ちましたか?