LoginSignup
3
1

Kubernetes 1.27 SIG Instrumentation の変更内容

Last updated at Posted at 2023-04-20

はじめに(What’s New の内容含む)

ここでは、Kubernetes 1.27 の CHANGELOG から Metrics の変更と SIG Instrumentation の取り組みについてまとめています。

Kubernetes v1.27 で SIG Instrumentation が扱う主要なテーマと注目したいテーマはないため、更新された KEP の Milestone と参考リンクを記載しておきます。

それでは Metrics Changes について説明していきます。
メトリクスの変更 は、私が全ての変更点からメトリクスの変更に関連するものを抜粋した内容となります。

メトリクスの変更(Metrics Changes)

component-base

  • [ADD] クライアント側でサーバーへの再試行回数を計測したメトリクスが追加されました(#108396, @￰tkashem)
    • Counter: rest_client_request_retries_total
      • Labels: {"code", "verb", "host"}

kube-apiserver

  • [ADD] Status RPC から無効な keyID が返された回数を計測するメトリクスが追加されました(#115846, @￰ritazh)
    • Counter: apiserver_envelope_encryption_invalid_key_id_from_status_total
      • Labels: {"provider_name", "error"}
  • [ADD] KMSv2 GRPC サービスのレイテンシーを計測するメトリクスが追加されました(#115649, @￰aramase)
    • Histogram: apiserver_envelope_encryption_kms_operations_latency_seconds
      • Labels: {"provider_name", "method_name", "grpc_status_code"}
      • Buckets: metrics.ExponentialBuckets(0.001, 2, 18)
  • [ADD] etcd でオブジェクトをデコードする際に発生したエラー回数を記録するメトリクスが追加されました(#114376, @￰baomingwang)
    • Counter: apiserver_storage_decode_errors_total
      • Labels: {"resource"}
  • [ADD|DEPRECATED] 冗長なサブシステム名がメトリクスに含まれていたので削除し新しいメトリクスが追加されました。元のメトリクスは非推奨となります(#114497, @￰dgrisonnet)
    • kube_apiserver_pod_logs_pods_logs_backend_tls_failure_total => kube_apiserver_pod_logs_backend_tls_failure_total
    • kube_apiserver_pod_logs_pods_logs_insecure_backend_total => kube_apiserver_pod_logs_insecure_backend_total
  • [ADD] KMSv2 関連のメトリクスが追加されました(#115394, @￰ritazh)
    • Counter: apiserver_envelope_encryption_key_id_hash_total
      • Labels: {"transformation_type", "provider_name", "key_id_hash"}
    • Histogram: apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds
      • Lables: {"transformation_type", "provider_name", "key_id_hash"}
    • Gauge: apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds
      • Labels: {"provider_name", "key_id_hash"}
  • [MOD] transformer_prefix のラベルが追加されました (#115394, @￰ritazh)
    • Histogram: apiserver_storage_transformation_duration_seconds
      • Labels: {"transformation_type", "transformer_prefix"}
      • Buckets: metrics.ExponentialBuckets(5e-6, 2, 25)
  • [MOD] SLO/SLI レイテンシーのメトリクスから APF の待ち時間が除外されました(#116420, @￰andrewsykim)
    • Histogram: apiserver_request_slo_duration_seconds
    • Histogram: apiserver_request_sli_duration_seconds
  • [MOD] Webhook のタイムアウト秒数に合わせて 10 秒と 25 秒のバケットが追加されました(#115802, @￰logicalhan)
    • Histogram: apiserver_admission_webhook_admission_duration_seconds
      • Labels: {"name", "type", "operation", "rejected"}
      • Buckets: {0.005, 0.025, 0.1, 0.5, 1.0, 2.5, 10, 25}

kubelet

  • [ADD] Topology Manager のアドミッションリクエスト数とアドミッションエラー数を計測するメトリクスが追加されました(#115137, @￰swatisehgal)
    • Counter: kubelet_topology_manager_admission_requests_total
      • Labels: なし
    • Counter: kubelet_topology_manager_admission_errors_total
      • Labels: なし
  • [ADD] Topology Manager のアドミッションリクエストのレイテンシーを計測するメトリクスが追加されました(#115590, @￰swatisehgal)
    • Counter: kubelet_topology_manager_admission_duration_ms
      • Labels: なし
      • Buckets: metrics.ExponentialBuckets(.05, 2, 15)
      • Notes: 単位は混在させてない方針だと思うので、そのうち seconds に修正されるかと思います
  • [ADD] kubelet 起動時のボリューム再構築に関するメトリクスが追加されました(#115965, @￰jsafrane)
    • Counter: reconstruct_volume_operations_total
      • Labels: なし
    • Counter: reconstruct_volume_operations_errors_total
      • Labels: なし
    • Counter: force_cleaned_failed_volume_operations_total
      • Labels: なし
    • Counter: force_cleaned_failed_volume_operation_errors_total
      • Labels: なし
  • [ADD] 強制削除された Pod は終了中にコンテナランタイムでエラーが発生すると kubelet が再起動されるまで終了に失敗することがあります。kubelet が追跡している Pod の数を計測する新しいメトリクスにより、オペレーターは完了しない可能性のある Pod などがモニタリングできます(#113145, @￰smarterclayton)
    • Counter: kubelet_desired_pods
      • Labels: {"static"}
    • Counter: kubelet_active_pods
      • Labels: {"static"}
    • Counter: kubelet_mirror_pods
      • Labels: なし
    • Counter: kubelet_working_pods
      • Labels: {"lifecycle", "config", "static"}
    • Counter: kubelet_orphaned_runtime_pods_total
      • Labels: なし
    • Counter: kubelet_active_pods
      • Labels: {"static"}
  • [DEL] 非推奨のメトリクスが削除されました(#115209, @￰dgrisonnet)
    • node_collector_evictions_number
      • 代わりに node_collector_evictions_total を利用してください
    • scheduler_e2e_scheduling_duration_seconds
      • 代わりに scheduler_scheduling_attempt_duration_seconds を利用してください

kube-controller-manager

  • [ADD] HPA コントローラーで以下のメトリクスが追加されました(#116010, @￰sanposhiho) (#116326, @￰sanposhiho)
    • Counter: horizontal_pod_autoscaler_controller_reconciliations_total
      • Labels: {"action", "error"}
    • Histogram: horizontal_pod_autoscaler_controller_reconciliation_duration_seconds
      • Labels: {"action", "error"}
      • Buckets: metrics.ExponentialBuckets(0.001, 2, 15)
    • Counter: horizontal_pod_autoscaler_controller_metric_computation_total
      • Labels: {"action", "error", "metric_type"}
    • Histogram: horizontal_pod_autoscaler_controller_metric_computation_duration_seconds
      • Labels: {"action", "error", "metric_type"}
      • Buckets: metrics.ExponentialBuckets(0.001, 2, 15)
  • [ADD] Node IPAM コントローラーに割り当て可能な CIDER の最大数を計測するメトリクスが追加されました(#112260, @￰aryan9600)
    • Gauge: node_ipam_controller_cirdset_max_cidrs
      • Labels: {"clusterCIDR"}
    • Gauge: node_ipam_controller_multicirdset_max_cidrs
      • Labels: {"clusterCIDR"}

kube-scheduler

  • [ADD] プラグインがスケジューリング結果に何回影響を与えたかを計測するメトリクスが追加されました。無関係な Pod の場合、この値は増加しません。(#115082, @￰sanposhiho)
    • Counter: scheduler_plugin_evaluation_total
      • Labels: {"plugin", "extension_point", "profile"}
  • [MOD] PreEnqueue プラグインの実行時間を含めるようになりました(#116201, @￰sanposhiho)
    • Histogram: scheduler_plugin_execution_duration_seconds
  • [MOD] 以下のメトリクスの Stability Level が Stable になりました(#115454, @￰dgrisonnet)
    • Gauge: kube_pod_resource_request
    • Gauge: kube_pod_resource_limit

kube-proxy

  • なし

その他

  • cAdvisorv0.47.0 に更新されました(#114883, @￰bobbypage)
    • [DEL] container_accelerator_duty_cycle
    • [DEL] container_accelerator_memory_total_bytes
    • [DEL] container_accelerator_memory_used_bytes

メトリクス以外の変更点

  • KubeletTracing フィーチャーゲートが Beta に移行になりデフォルトで有効になりました(#115750, @￰saschagrunert)
  • go flag set で pflag 使用すると、ヘルプメッセージの出力時にパニックとなる問題が修正されました(#114680, @￰pohly)
  • コントロールプレーンのコンポーネントで /metrics/slis エンドポイントが利用可能となりました(#114997, @￰Richabanker)
  • APIServerTracing フィーチャーゲートが Beta となりデフォルトで有効となりましたが、利用するためには設定で有効化する必要があります(#116144, @￰dashpole)
  • k8s.io/component-base/logsflag.FlagSet へのコマンドラインフラグの追加もサポートしました(#114731, @￰pohly)
  • Cloud Controller Manager にロギングフォーマットのオプションが追加されました(#108984, @￰LittleFox94)
  • InterPodAffinity フィルタープラグインが Pod と無関係な場合、Scheduler が InterPodAffinity フィルタープラグインをスキップするようになりました。 InterPodAffinity フィルタープラグインに関連するメトリクスの計測に影響を与える可能性があります(#114889, @￰sanposhiho)
  • HPAContainerMetrics フィーチャーゲートが無効な場合に HPA コントローラーはコンテナリソースメトリクスでエラーを返すようになりました(#116043, @￰sanposhiho)
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1