K8S 生態週報| Kubernetes CronJob 可直接配置時區了

張晉濤發表於2022-04-11
「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

相關文章