头图
「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」

Prometheus blackbox_exporter v0.20.0 正式发布

Prometheus 中的 blackbox_exporter 我们一般使用它进行黑盒监控,比如对一些 HTTP/HTTPS,DNS,TCP 等接口或者请求。

在这个版本中又增加了很多有趣的特性,我们一起来看看。

  • #835 增加了对 gRPC 接口的健康检查,现在 gRPC 用的也越来越多了。要知道在两年前发起类似功能讨论的时候,当时的维护者还认为 gRPC 支持已经超过了项目的职责范围,不过目前可以看到 blackbox_exporter 已经基本涵盖到了我们所需要的各类协议。

如果你使用了这个功能的话,它会产生一些 metrics 可供我们进行监控告警。

probe_grpc_healthcheck_response{serving_status="UNKNOWN"}=0
probe_grpc_healthcheck_response{serving_status="SERVING"}=1
probe_grpc_healthcheck_response{serving_status="NOT_SERVING"}=0
probe_grpc_healthcheck_response{serving_status="SERVICE_UNKNOWN"}=0
  • #823 为 HTTP 类型的任务增加了 Hostname 参数,这可以在发起请求的时候传递过去 Host 请求头,在配置任务的时候可以使用如下的配置作为参考:
scrape_configs:
  - job_name: blackbox_all
    metrics_path: /probe
    params:
      module: [ http_2xx ]  # Look for a HTTP 200 response.
    dns_sd_configs:
      - names:
          - example.com
          - prometheus.io
        type: A
        port: 443
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
        replacement: https://$1/  # Make probe URL be like https://1.2.3.4:443/
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9115  # The blackbox exporter's real hostname:port.
      - source_labels: [__meta_dns_name]
        target_label: __param_hostname  # Make domain name become 'Host' header for probe requests
      - source_labels: [__meta_dns_name]
        target_label: vhost  # and store it in 'vhost' label

更多详细信息请参考其 ReleaseNote

runc v1.1.1 发布

runc 是一个底层容器运行时。我之前的文章中有很多篇关于 runc 的内容,如有兴趣可以翻翻看。

事实上 runc 作为一个底层容器运行时,它的发布频率是很低的,毕竟在云原生领域中有大量的项目都依赖于 runc 或者将 runc 作为依赖导入,
runc 每次发布新版本,这些项目一般也需要进行依赖的更新。

本次发布的 v1.1.1 只是一个小版本更新,主要是进行一些 bugfix 。我们来看看其中值得关注的内容:

在之前版本中,如果遇到了 statfs("/sys/fs/cgroup/unified") 发生除了 ENOENT 外的错误,都会引起 panic 。
本次在 #3433 中对其进行了调整,不再会 panic ,而是会记录下
日志。

此外, 通过在 #3398 中修正了对
/sys/kernel/cgroup/delegate 文件中包含的内容的检查。因为并非所有的 cgroup 中都包含了此内容。

更多详细信息请参考其 ReleaseNote

上游进展

  • #109074 · kubernetes/kubernetes kubeadm 中为 etcd 的 static Pod 增加了一个 --experimental-initial-corrupt-check 选项,可以用来确认 etcd member 中数据的一致性。这个特性预期在 etcd 的 v3.6 版本中会正式可用。此外,etcd 的 Release 页面也写了,当前不建议将 etcd 3.5.x 用于生产环境,如果尚未进行升级,可以先继续使用 3.4.x。如果已经升级了,那么可以自行增加此参数;
  • #108032 · kubernetes/kubernetes 这个 PR 为 CronJob 增加了一个 timeZone 的字段,这是根据 KEP 3140 进行实现的。从此大家在 Kubernetes 中使用 CronJob 时,就可以比较方便的去设置时区了。

欢迎订阅我的文章公众号【MoeLove】

TheMoeLove


张晋涛
1.7k 声望19.7k 粉丝