「K8S 生態(tài)周報」內容主要包含我所接觸到的 K8S 生態(tài)相關的每周值得推薦的一些信息咆繁。歡迎訂閱知乎專欄「k8s生態(tài)」寿桨。
Node Exporter v1.0.0 正式發(fā)布
Prometheus 是最早由 SoundCloud 開源的監(jiān)控告警解決方案苞轿。并已經成長為繼 Kubernetes 之后耍铜,第二個從 CNCF 畢業(yè)的項目越妈。伴隨著云原生理念的普及和 Kubernetes 等技術的發(fā)展错沃, Prometheus 在監(jiān)控領域也有了長足的發(fā)展栅组。
其主要組件包括 Prometheus,Alertmanager枢析,Node Exporter玉掸,Blackbox Exporter 和 Pushgateway 等。
Promethues 采取 Pull 的模式醒叁,所采集的 metrics 需要由對應的 Exporter 暴露出來排截。我們最常用的用于收集系統(tǒng) metrics 的組件便是 Node Exporter 了。
本周辐益,Node Exporter 終于迎來了 v1.0.0 版本断傲,標志著它更加穩(wěn)定,更加通用智政。
我在本周專門寫了一篇文章來介紹它這個版本中我最關注的特性: 為 Prometheus Node Exporter 加上認證, 我們可以讓監(jiān)控變得更加安全认罩。
當然這個版本中也包含了眾多變更和 bugfix, 這里暫且跳過续捂,有興趣的小伙伴可直接參閱其 ReleaseNote
Docker v19.03.10 發(fā)布
Docker 在本周發(fā)布了 v19.03.10 版本垦垂,距離上個版本 v19.03.9 僅過了兩周的時間,如果在使用 Docker v19.03.x 版本的小伙伴牙瓢,我個人還是建議你更新到此版本劫拗。
此版本中最主要的一個修復是網絡相關的,具體而言是與內置 DNS (embedded DNS) 有關的問題矾克,在特定場景下页慷,如果你創(chuàng)建了自定義網絡,當解析外部域名時胁附,可能會出現解析失敗的情況酒繁。
這個問題的根因最早是今年 3 月份我在參與 Docker 開發(fā)時遇到的,當內置 DNS 服務器域名解析失敗時控妻,可能會觸發(fā) panic 導致 Docker daemon 異常退出州袒。隨后 Sam Whited 在 moby/libnetwork
中快速的對其進行了修正。
- if err != nil && !resp.Truncated {
+ if err != nil && (resp != nil && !resp.Truncated) {
修改的內容看起來很簡單弓候,在異常處理時郎哭,增加了 resp != nil
的條件他匪,這確實修正了我當時遇到的情況。
但這個修正卻會忽略返回錯誤但無響應的情況夸研,比如 DNS 服務器異常之類的情況诚纸。但由于后續(xù) Docker 中的邏輯處理中,需要依賴于此處的錯誤處理陈惰,所以會錯誤的認為 DNS 服務器已連接成功,只是沒有響應罷了毕籽。這也就帶來了問題抬闯。
所以這次的修正,也還是在這個位置:
- if err != nil && (resp != nil && !resp.Truncated) {
+ if err != nil && (resp == nil || !resp.Truncated) {
處理了兩種情況:
- 如果返回了錯誤关筒,并且響應為空溶握;
- 如果返回了錯誤,并且和截斷的響應無關蒸播;
經過這次的修正睡榆,那就基本覆蓋了目前能考慮到的所有情況了。希望大家能盡早升級版本袍榆。
trivy 發(fā)布 v0.8 版本
在之前的 「K8S 生態(tài)周報」中已經介紹過 trivy 工具了胀屿,是一款很方便的鏡像安全掃描工具。 本周它發(fā)布了 v0.8 的版本包雀,帶來了幾個值得關注的變更宿崭。
- 增加了新的子命令
trivy image $IMAGE_NAME
,同時廢棄了之前的trivy $IMAGE_NAME
的格式才写; - 增加
--format=json
用于以 JSON 形式輸出結果葡兑,更便于與其他系統(tǒng)進行集成; - 通過設置
TRIVY_REGISTRY_TOKEN
環(huán)境變量赞草,可設置 registry token 便于直接拉取鏡像進行掃描讹堤;
可直接訪問 Release 頁面 下載使用新版本。
上游進展
-
#90960 修正了
kubectl create secret docker-registry --from-file
不可用的問題厨疙; -
#91182 kubelet 的
--seccomp-profile-root
選項移動到了配置文件中洲守; - #91171 將 etcd 的鏡像換成了基于 distroless 的鏡像,之前已經把其他的一些鏡像都換掉了沾凄,主要考慮的點可能是安全和體積相關的問題吧岖沛。
歡迎訂閱我的文章公眾號【MoeLove】