云原生生态周报 Vol.9| K8s v1.15 版本发布
本周作者 | 衷源、心貴
業(yè)界要聞
1、Kubernetes Release v1.15 版本發(fā)布,新版本的兩個主題是持續(xù)性改進和可擴展性。(https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.15.md#kubernetes-v115-release-notes)
2、Helm 這款包管理工具, 作為業(yè)界 Kubernetes 上應(yīng)用分發(fā)的事實標準,其 v3.0.0-alpha.1 正式發(fā)布,這是 Helm 3 的第一個 Alpha 版本。(https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1)
3、Google 的 Dropout 專利生效,有效期 15 年。Dropout 是深度學(xué)習(xí)的一種基礎(chǔ)算法,對人工智能行業(yè)影響巨大。
4、Rancher 2.3 Preview 發(fā)布,通過一個簡單以及友好的界面,用戶即可使用 istio。(https://github.com/rancher/rancher/releases/tag/v2.3.0-alpha5)
5、Talos 發(fā)布。Talos 是一款專門用于部署Kubernetes的操作系統(tǒng)。相對于 CoreOS,RancherOS 或者 LinuxKit 這些容器操作系統(tǒng),Talos 更為精簡。(https://github.com/talos-systems/talos)
6、 Google 推出深度學(xué)習(xí)容器,包括 TensorFlow 1.13,TensorFlow 2.0,PyTorch 和 R 語言容器。
上游重要進展
Kubernetes v1.15 版本發(fā)布
Kubernetes Release v1.15 版本,新版本的兩個主題是持續(xù)性改進和可擴展性。其中持續(xù)性改進著重于提高核心組件的可靠性和穩(wěn)定性,同時修復(fù)一些遺留的問題;而可擴展性關(guān)注著重關(guān)注在 CRD 和 Webhook 的改進和優(yōu)化上。我們就這兩個主題講述一些值得關(guān)注的特性和改進。v1.15 版本的發(fā)布意味著不僅我們可以更加便捷的管理集群和擴展集群,同時新版本的集群的穩(wěn)定性更加堅固。
- 可靠性和穩(wěn)定性
- 新引入 WatchBookmark 特性。該特性能大大提高 Kube-Apiserver 的 List/Watch 性能,大家都知道,大規(guī)模集群下各個組件的 List/Watch 會消耗 Kube-Apiserver 巨大的性能開銷,有了該特性,我們可以展望未來的集群規(guī)模又可以上升一個臺階。 (#74074, @wojtek-t)
- Admission 默認開啟 StorageObjectInUseProtection。StorageObjectInUseProtection 能保護正在使用的 PV/PVC 被誤刪除。這對手速太快的開發(fā)和 SRE 同學(xué)是一個很大的福音。(#74610, @oomichi)
- 螞蟻金服在大規(guī)模實踐中,發(fā)現(xiàn) Daemonset 有各種發(fā)布和部署 Pod 被卡住的問題,螞蟻同學(xué)對 Daemonset Controller 可能發(fā)生的一系列死鎖問題做了修復(fù)。
參考:
https://github.com/kubernetes/kubernetes/pull/78974
https://github.com/kubernetes/kubernetes/pull/77773
https://github.com/kubernetes/kubernetes/pull/77208
https://github.com/kubernetes/kubernetes/pull/78170
-
CRD 可擴展性和實用性增強
- 增加 CustomResourcePublishOpenAPI 特性,新版本會使用 OpenAPI v3 schemas 做 CRD 實例的校驗,同時我們可以做 CRD 的Prune 和 默認值設(shè)置等,同時后續(xù)我們可能依賴 OpenAPI 做 CRD 的 Protobuf 支持。(#77825, @roycaihw)
- 新的 Prune 特性會默認移除 CRD 實例未知的字段,同時也不會將未知字段持久化,這會大大減少 CRD 實例未知字段帶來的干擾以及降低 CRD 的存儲開銷同時提高性能。
- 支持使用 OpenAPI 校驗來設(shè)置 CRD 實例的默認值。通過這種更加輕量級的方式,開發(fā)者不必費勁腦力和時間去再寫一個 Webhook 監(jiān)聽 CRD 實例的創(chuàng)建去設(shè)置默認值了。(#77558, @sttts)
- 增加 CRD Conversion Webhook 支持多版本 CRD 實例之間的轉(zhuǎn)換。之前我們的 CRD 版本升級(比如從 v1alpha1 升級到 v1betav1) 是個頭疼的問題,使用這個功能我們的版本轉(zhuǎn)化能完美解決(KEP)。
-
Webhook 增強
- Admission Webhook 的配置增加了 ObjectSelector。從之前的只能根據(jù) NamespaceSelector 和指定資源進行過濾,到新版本的 Webhook 能對特定的 Label 的資源實例過濾,從而大大提高了 Webhook 的執(zhí)行效率。
- Webhook 的配置允許一個 Webhook 的調(diào)用指向一個非 443 端口的服務(wù)。Webhook 包括 Admission webhook, AuditSink webhook, CRD Conversion webhook(還包括 kube-aggregator Service 的配置)。
- Admission Webhook的配置允許一個 Webhook 只注冊和監(jiān)聽一個版本的資源,比如我們可以只注冊 apps/v1 deployments 而不關(guān)心其它的 deployment 版本的資源,這樣我們的 Webhook Server 不用隨著 API 定義的升級去強行升級。
Kube-Apiserver 性能深入研究
開源項目推薦
本周閱讀推薦
《Cloud 2.0:代碼不再為王,Serverless 當?shù)?#xff01;》
這一篇不錯的務(wù)虛文檔,可以從技術(shù)演進的視角去思考云時代的技術(shù)演進。
文章鏈接:
https://mp.weixin.qq.com/s/QzudayLEHg0TrJtJ30f9Vg
《微服務(wù)架構(gòu)之「 監(jiān)控系統(tǒng) 」》
這篇文檔詳細且完整的描述了微服務(wù)架構(gòu)下的監(jiān)控系統(tǒng)。用戶可以根據(jù)此文檔對微服務(wù)的解決方案進行入門級的了解。
文章鏈接:
https://mp.weixin.qq.com/s/xH1LX6iOJqKC5Y5IRsAhpQ
《云原生應(yīng)用 Kubernetes 監(jiān)控與彈性實踐》
云原生應(yīng)用的設(shè)計理念已經(jīng)被越來越多的開發(fā)者接受與認可,而 Kubernetes 做為云原生的標準接口實現(xiàn),已經(jīng)成為了整個 stack 的中心,云服務(wù)的能力可以通過 Cloud Provider、CRD Controller、Operator 等等的方式從 Kubernetes 的標準接口向業(yè)務(wù)層透出。本文向大家介紹一個云原生應(yīng)用該如何在 Kubernetes 中無縫集成監(jiān)控和彈性能力。
文章鏈接:https://yq.aliyun.com/articles/704346
總結(jié)
以上是生活随笔為你收集整理的云原生生态周报 Vol.9| K8s v1.15 版本发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Knative 初体验:Build He
- 下一篇: 初探云原生应用管理(一): Helm 与