はじめに
ここでは Kubernetes v1.31 の Changelog から、メトリクスの変更点と SIG Instrumentation の取り組みについてまとめました。
Kubernetes v1.31 で大きく更新された SIG Instrumentation の KEP はないため、メトリクスに関連する更新内容を抜粋した内容のみを紹介します。
メトリクスの変更
kube-apiserver
-
デバッグのためにリソースバージョンを記録するメトリクスが追加されました(#125377, @wojtek-t)
- Gauge:
apiserver_watch_cache_resource_version
- Labels: {"resource"}
- Gauge:
-
ValidatingAdmissionPolicy (VAP) と CustomResourceDefinition (CRD) のバリデーションルールのメトリクスがベータに昇格しました(#126237, @cici37)
- Counter:
apiserver_validating_admission_policy_check_total
- Labels: {"policy", "policy_binding", "error_type", "enforcement_action"}
- Histogram:
apiserver_validating_admission_policy_check_duration_seconds
- Labels: {"policy", "policy_binding", "error_type", "enforcement_action"}
- Histogram:
apiserver_cel_compilation_duration_seconds
- Labels: {"policy", "policy_binding", "error_type", "enforcement_action"}
- Histogram:
apiserver_cel_evaluation_duration_seconds
- Labels: {"policy", "policy_binding", "error_type", "enforcement_action"}
- Counter:
kubelet
-
VolumeAttributesClass フィーチャーの可観測性を強化するため、次のメトリクスにラベルが追加されました。これにより、バインドできない StorageClass と VolumeAttributesClass の確認が容易になりました。(#126166, @AndrewSirenko)
- Gauge:
pv_collector_bound_pvc_count
- Labels: {"namespace", "storage_class", "volume_attributes_class"}
- Gauge:
pv_collector_unbound_pvc_count
- Labels: {"namespace", "storage_class", "volume_attributes_class"}
- Gauge:
kube-scheduler
-
スケジューラーでイベントの処理時間を計測するメトリクスが追加されました(#125929, @sanposhiho)
- Histogram:
scheduler_event_handling_duration_seconds
- Labels: {"event"}
- Histogram:
-
scheduler_event_handling_duration_seconds
メトリクスに加え、ボトルネックをより明確に把握するため、QueueingHint 実行時間を計測するメトリクスが追加されました(#126227, @sanposhiho)- Histogram:
scheduler_queueing_hint_execution_duration_seconds
- Labels: {"plugin", "event", "hint"}
- Histogram:
-
HELP テキストのタイプミスが修正されました(#124221, @arturhoo)
- Histogram:
scheduler_pod_scheduling_sli_duration_seconds
- Labels: {"attempts"}
- Histogram:
kube-proxy
-
kube-proxy の iptables モードに、Conntrack によって無効とマークされ、ドロップされたパケットを追跡するメトリクスが追加されました(#122812, @aroradaman)
- Counter:
kubeproxy_iptables_ct_state_invalid_dropped_packets_total
- Counter:
-
kube-proxy の iptables モードに、iptables から nftables への移行支援のため、iptables.localhostNodePorts 機能に依存しているかどうかを特定するためのメトリクスが追加されました(#125015, @aroradaman)
- Counter:
kubeproxy_iptables_localhost_nodeports_accepted_packets_total
- Counter:
-
kube-proxy の nftables モードに対応したメトリクスが追加されました(#124557, @danwinship)
- Counter:
kubeproxy_sync_proxy_rules_nftables_sync_failures_total
- Counter:
kubeproxy_sync_proxy_rules_nftables_cleanup_failures_total
- Counter:
メトリクス以外の変更点
- Component-base/logs: Go 1.21 以降でコンパイルした場合、component-base は klog の初期化とともに、slog デフォルトロガーを自動的に設定します(#120696, @pohly)
- pkg/proxy が contextual logging に移行しました(#122979, @fatsheep9146)
- klog.KObj 関数を利用して、Pod 情報のログ出力を最適化しました(#124055, @yangjunmyfm192085)
参考
-
Kubernetes Metrics Reference
- 2024-08-20 の記載時点では v1.30 までの内容となっています
- History for content/en/docs/reference/instrumentation/metrics.md - kubernetes/website