K8S 生態周報| K8S 移除對 basic auth的支持

「K8S 生態周報」內容主要包含我所接觸到的 K8S 生態相關的每周值得推薦的一些信息。歡迎訂閱知乎專欄「k8s 生態」 ( https://zhuanlan.zhihu.com/container )。

1 Helm v2.16.5 發佈

鑒於還有不少人尚未升級至 Helm v3,雖然 Helm v2 目前在維護期,但仍然在頻繁在發佈版本。

本周 Helm v2 相繼發佈了 v2.16.5 和 v2.16.4, 如果打算升級的話,建議直接升級至 v2.16.5 。

因為 v2.16.4 版本中在 Validate() 中誤添加了一個 Latest() ,會導致在安裝或升級 Release 時,出現資源找不到的錯誤。

例如:

Release "moelove-release" does not exist. Installing it now.  Error: namespaces "moelove-namespace" not found

更多詳情請參考其 ReleaseNote ( https://github.com/helm/helm/releases/tag/v2.16.5 ) 。

2 Kubernetes v1.18 正式發佈

這是 Kubernetes 今年第一個正式發佈的版本,v1.18 包含了 38 個增強功能,其中包含 15 個 stable 狀態的,11 個在 beta ,最後剩餘 12 個還是 alpha 階段。

這個版本在改善用戶體驗,以及穩定性方面做了大量的工作。至於具體的變化,請參考我上周發佈的文章 《Kubernetes v1.18 正式發佈!搶先一覽》 ( https://zhuanlan.zhihu.com/p/116177002 ) 。

對此版本感興趣的小夥伴,可以直接使用 Kind 進行安裝體驗。示例如下:

(MoeLove) ➜  ~ wget -q -O kind https://github.com/kubernetes-sigs/kind/releases/download/v0.7.0/kind-linux-amd64  (MoeLove) ➜  ~ chmod +x kind  (MoeLove) ➜  /tmp ./kind create cluster --image=kindest/node:v1.18.0@sha256:0e20578828edd939d25eb98496a685c76c98d54084932f76069f886ec315d694 --name=v1.18  Creating cluster "v1.18" ...   ✓ Ensuring node image (kindest/node:v1.18.0) ?   ✓ Preparing nodes ?   ✓ Writing configuration ?   ✓ Starting control-plane ?️   ✓ Installing CNI ?   ✓ Installing StorageClass ?  Set kubectl context to "kind-v1.18"  You can now use your cluster with:    kubectl cluster-info --context kind-v1.18    Not sure what to do next? ? Check out https://kind.sigs.k8s.io/docs/user/quick-start/    (MoeLove) ➜  ~ kubectl get nodes  NAME                  STATUS   ROLES    AGE    VERSION  v1.18-control-plane   Ready    master   109s   v1.18.0

更詳細內容請參考其 ReleaseNote ( https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#whats-new-major-themes )

3 CoreDNS v1.6.9 發佈

CoreDNS 發佈了 v1.6.9 版本,這個版本的發佈主要是由於在發佈 v1.6.8 時,自動化發佈工具遇到了點問題。如果你仔細去看 ReleaseNote 你會發現兩個版本的 ReleaseNote 基本是一樣的內容。本次發佈其實就是為了修正自動化發佈工具。

所以,我們一起看看 CoreDNS v1.6.9 (或者說 v1.6.8) 中,有哪些值得注意的內容吧:

  • #3640 ( https://github.com/coredns/coredns/pull/3640 ) plugins/forward: 增加了一個 max_concurrent 的配置項,可通過這個配置項做並發控制。同時也在 metrics 中增加了 max_concurrent_reject_count_total{} 用於統計由於達到最大並發限制而被拒絕的請求;
  • #3687 ( https://github.com/coredns/coredns/pull/3687 ) plugin/kubernetes:在 PTR 類型的請求中,返回查找到的所有的 IP 而不是只返回第一個;
  • #3643 ( https://github.com/coredns/coredns/pull/3643 ) plugin/forward:通過添加健康檢查來避免創建新的 TLS 連接。當 forward 檢查到錯誤的時候,健康檢查將會在一個循環中運行,初始間隔是 0.5s,之後會持續增長至 60s,報告上游不健康。當上游恢復健康時,健康檢查將會停止。

4 上游進展

  • #89069 ( https://github.com/kubernetes/kubernetes/pull/89069 ) 終止對 basic authentication 的支持,–basic-auth-file 被徹底移除,這個特性其實在 v1.16 中就已經被棄用了,如果有用到該特性的朋友,請儘快更換其他方式。另外,對 basic authentication 的支持,大概是從 2015 年加入的,至今將近 5 年左右的時間,也算是很輝煌了。
  • #89377 ( https://github.com/kubernetes/kubernetes/issues/89377 ) CVE-2020-8551: Kubelet DoS via API 和 #89378 ( https://github.com/kubernetes/kubernetes/issues/89378 ) CVE-2020-8552: apiserver DoS (oom) 是近期的兩個非常值得關注的漏洞。幾乎是所有版本均會收到漏洞的影響,請及時將小版本更新至 v1.17.3 ,v1.16.7 和 v1.15.10 。