「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】