Helm 3 发布 | 云原生生态周报 Vol. 27
作者 | 墨封、元毅、冬島、敖小劍、衷源
業(yè)界要聞
1.Helm 3 發(fā)布
美國時(shí)間 11 月 13 日,Helm 團(tuán)隊(duì)發(fā)布 Helm 3 第一個(gè)穩(wěn)定版本。Helm 3 以 Helm 2 的核心特性為基礎(chǔ),改進(jìn)了 chart 存儲庫、版本管理、安全性和 chart 庫。在這個(gè)版本中,Helm 維護(hù)者整合了來自社區(qū)的反饋和請求,以更好地滿足 Kubernetes 用戶和廣泛的云原生生態(tài)系統(tǒng)的需求。附:博客地址。
2.Github Octoverse 報(bào)告發(fā)布
報(bào)告顯示,JavaScript 依然是最受歡迎的語言,Python 反超 Java 成為第二名,Kubernetes 進(jìn)入最受歡迎的開源項(xiàng)目 Top10。
3.KubeCon CloudNativeCon 北美地區(qū)會(huì)議召開
KubeCon CloudNativeCon North America 2019?將在下周(11 月 18 日 - 11月 21 日)在 San Diego 召開。
4.CNCF 發(fā)布 Prometheus 項(xiàng)目發(fā)展報(bào)告
這是繼?Kubernetes?和?Envoy?之后,發(fā)布的第三份關(guān)于 CNCF 畢業(yè)項(xiàng)目的報(bào)告。本報(bào)告試圖客觀地評估 Prometheus 項(xiàng)目的狀態(tài),以及 CNCF 如何影響 Prometheus 項(xiàng)目的進(jìn)展和成長。
5.Kubernetes release 1.17
Kubernetes release 1.17 將于周四(11 月 14 日)code freeze。
上游重要進(jìn)展
Kubernetes Feature
-
InterPod Affinity(Scheduler)
- 優(yōu)化計(jì)算 priority 的過程,在 topology 層對 score 進(jìn)行匯聚,不用遍歷 node 進(jìn)行匯聚;
- nodeInfo snapshot 中記錄 pod affinity 信息,縮小 priority 和 predicate 中的查詢范圍;
- 加入到 score plugin。
-
節(jié)點(diǎn)租約 NodeLease(Kubelet)
- 降低節(jié)點(diǎn)更新頻率,強(qiáng)制心跳的時(shí)間閾值調(diào)整到 5min;
- 節(jié)點(diǎn)心跳的 NodeLease 的 feature 從 FeatureGate 提升到了 GA(1.17)。
-
Apiserver watcher 優(yōu)化
權(quán)衡使用 CacheObject 的開銷,當(dāng) watcher 的數(shù)量大于 3 的情況下才使用,小幅度提升 watcher 性能。
- Apiserver bugfix
當(dāng)存在 encoding error 時(shí)需要及時(shí)關(guān)閉 watcher,防止出現(xiàn) goroutine 泄漏。
- kubelet: Record preemptions similarly to evictions
Kubelet 增加了一個(gè) kubelet_preemptions 的 Metric 去記錄 Pod 因缺少資源而被 evict 的次數(shù),短時(shí)間內(nèi)大量的 evict 可以反映出 scheduler 或者 controller 上可能有 BUG。
- Add a kubelet serving cert age metric
Kubelet 增加一個(gè) Histogram Metric 記錄集群中所有 Kubelet 的證書過期時(shí)間。
KEP
- Add scheduler priority
增加 scheduler priority ReadyPodPriority ,適用于例如新加入的集群的 node,會(huì)在短時(shí)間內(nèi)被調(diào)度大量的 pod,同時(shí)啟動(dòng)多個(gè) pod 可能造成壓力過大的情況。
- 增加 distributed tracing
用來追蹤一個(gè) Object 在不同 Kubernetes 組件中的整個(gè)生命周期。
ETCD
-
優(yōu)化 compact:將 compact 和 put/range handler 放在不同的 goroutine,減少 compact 阻塞 put/range 的情況;
-
boltdb freelistType 的 Feature 從 experimental 提升至 GA(3.5),默認(rèn)的 freelistType 從 array 改為 map;
-
為 etcd server 的 put、range、compact 請求過程增加 tracing,與 apiserver tracing 方式一致,記錄 raft、內(nèi)存 btree 索引、boltdb 等多個(gè)查詢過程的耗時(shí),便于排查性能問題,txn 暫不支持。
Istio
- Envoy Aggregate Clusters in Istio
Istio 和 Envoy 當(dāng)前支持兩種主要的解析形式,用于對服務(wù)的流量進(jìn)行負(fù)載均衡:基于 IP 的終端列表(EDS)和基于 IP 的主機(jī)列表(STRICT_DNS),由 Envoy 在運(yùn)行時(shí)解析。
社區(qū)在討論支持新的用例,要求可以使用混合解析模型:服務(wù)既可以包含基于 IP 地址的終端,也可以包含需要進(jìn)行 DNS 解析的主機(jī)名。滿足這個(gè)需求的方法之一是在 Envoy 中引入 Aggregate Cluster 的概念,Aggregate Cluster 包含 EDS cluster 和 STRICT_DNS cluster,當(dāng) EDS cluster 失敗時(shí),回退到 STRICT_DNS cluster。
- 討論 用 Istiod 代替 Pilot 的方式
計(jì)劃以增量方式來推進(jìn) Istiod 合并部署控制平面的方案,建議的合并順序是:Sidecar injector,Galley,Citadel。Istiod 計(jì)劃在 1.5 版本中提供并作為默認(rèn)安裝方式,現(xiàn)有客戶可以逐漸將組件遷移到 Istiod。
- 討論引入?ExternalInstance 進(jìn)行 Mesh 的擴(kuò)展
這個(gè) Proposal 提出通過將每個(gè)虛擬機(jī)注冊為 ExternalInstance(視為非托管 Pod),在 VM 和服務(wù)之間添加一個(gè)間接層,從而改善 Mesh 的擴(kuò)展。這將解耦網(wǎng)格中的 VM 成員資格與路由和服務(wù)命名事項(xiàng)。
Knative
- Eventing make Knative eventing more serverless and scalable
發(fā)起?Knative eventing 組件 serverless 化的討論。當(dāng)前 consumer service 可通過 knative-serving 部署,具備 autoscale 的能力。但是 Knative eventing 本身組件(sources, channels, brokers, …) 不具備 scale 能力。
開源項(xiàng)目推薦
quarkus
云原生 Java 應(yīng)用框架,精簡了 OpenJDK 的 HotSpot 和 GraalVM,啟動(dòng)速度快,RSS memory 開銷小。
kfserving
serverless 機(jī)器學(xué)習(xí) model serving 框架。
tracee
利用 eBPF 的容器 tracing 工具,可以收集容器中進(jìn)程調(diào)用的 syscall 等。
NexClipper
是一種快速簡單的 Kubernetes 解決方案。
本周閱讀推薦
1.《Kubernetes Scheduler 101》
系統(tǒng)化介紹 Kubernetes 中 Pod 調(diào)度的過程以及 Scheduler 組件的工作原理。
2.《Building a Large-scale Distributed Storage System Based on Raft》
介紹了 TiDB 如何基于 raft 構(gòu)建大型存儲系統(tǒng),解決分片、擴(kuò)展性、一致性、可用性等問題。
3.《AutoTiKV:基于機(jī)器學(xué)習(xí)的數(shù)據(jù)庫調(diào)優(yōu)》
利用自動(dòng)超參搜索對 TiKV 及其底層的 RocksDB 進(jìn)行參數(shù)搜索和調(diào)節(jié)。
4.《Primier:What is Container Security?》
本文主要介紹了應(yīng)該使用哪些最佳安全實(shí)踐,來保證容器和平臺在安全的環(huán)境下運(yùn)行。
5.《Knative Serving 健康檢查機(jī)制分析》
本文從 Knative 的健康檢查的角度來分析 Serverless 模式和傳統(tǒng)的模式的不同,介紹 Knative 針對 Serverless 場景的獨(dú)特考慮。
更多詳細(xì)信息請關(guān)注“阿里巴巴云原生”。
“阿里巴巴云原生微信公眾號(ID:Alicloudnative)關(guān)注微服務(wù)、Serverless、容器、Service Mesh等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢、云原生大規(guī)模的落地實(shí)踐,做最懂云原生開發(fā)者的技術(shù)公眾號。”
總結(jié)
以上是生活随笔為你收集整理的Helm 3 发布 | 云原生生态周报 Vol. 27的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开始报名!首次阿里巴巴经济体双 11 云
- 下一篇: Knative 实战:一个微服务应用的部