Argo 專案加入 CNCF 孵化器 | 雲原生生態週報 Vol. 45

阿里巴巴雲原生發表於2020-04-10

4.9次條.png

作者 | 陳潔、高相林、陳有坤、敖小劍

業界要聞

  1. Argo 專案加入 CNCF 孵化器

Argo 專案是一組 Kubernetes 原生工具,用於執行和管理 Kubernetes 上的作業和應用程式。目前由 Argo Workflows,Argo Events,Argo CD 和 Argo Rollouts 四個子專案組成。4 月 8 日,CNCF 技術監督委員會(Technical Oversight Committee,TOC)投票決定接受 Argo 作為孵化級別的託管專案。

  1. Argo CD v1.5 release

Argo CD 釋出 v1.5 版本,v1.5 在效能上進行了大幅度的優化,同時降低了對 APIServer 的壓力;此外,v1.5 還對 Helm 3 charts 進行了支援。

  1. CloudNativeSummit 召開

4 月 7 日,CloudNative 峰會在 youtube 上通過直播形式召開,峰會主要介紹了 CNCF 畢業專案(包括 Kubernetes,Prometheus,Envoy,Jaeger 等)的最新進展以及討論未來在雲原生技術上的一些新的動向。

  1. CNCF 釋出疫情期間健康工作指導

受 COVID-19 疫情影響,大多數人開啟了居家辦公模式,社交關係拉遠,不管是對身體健康還是心理健康都有所影響。CNCF Well-Being Working Group 提供了一份疫情期間工作指導,包括一些常見問題的解答以及建議。

  1. COVID-19 : 延長對 Helm v2 的錯誤修復

因 COVID-19,Helm 維護人員決定延長 Helm v2 的 Bug 修復服務時間。

上游重要進展

  1. Even with build error, kubectl apply should apply all valid resources

優化了 kubectl apply 的邏輯,儘可能多的 apply YAML 中的有效資源。

  1. kubelet add initial support for cgroupv2

支援在 cgroup v2 unified mode 的機器上跑 kubelet。同時做了 cpu.shares(閾值為 2-262144 )到 cpu.weight(閾值為 1-10000)的轉換。

  1. apiserver: add a metric exposing etcd database size 

在 apiserver 端暴露了一個 etcd db size 使用量的 metric。

  1. Fix SelectorFromSet: add a ValidatedSelectorFromSet

解決了一個沒有對 Selector 結果進行校驗的 Bug。目前使用 labels.SelectorFromSet,如果解析失敗(例如 label value 誤填了一個很長的值),會返回一個空的 Selector,從而導致所有的資源被篩選出。

  1. Reduce locking when calculating affinity scores

排程器優化了計算親和性分數時的效能,將迴圈內部的一個讀寫鎖移到了 goroutine 最外層(優化了鎖粒度)。

  1. apiextensions: wait for complete discovery endpoint

使用 discovery endpoint 時會等待 CRD 同步狀態完畢後再上報 readiness,解決了 discovery enxpoint 啟動後會短暫不可用的問題。

  1. Add pod-level process stats to the summary API for out-of-pid eviction

Kubelet 進行 out-of-pid eviction 時,目前僅利用 PodPriority 來進行排序,這個 KEP 計劃加入更多程式級別資料(例如 Pod 內程式數)來進行 eviction。

  1. HPA scaling based on container resources

支援基於容器級別資源來進行 autoscaling,原因是目前單個 Pod 中可能存在以下特殊場景:

  • 多個容器有不同的資源閾值;
  • 有多個容器,但是 autoscaling 只基於單個容器的資源閾值。
  1. knative 暴露 Downward API

這個設計文件主要是考慮如何實現,列出了四種方法以及他們的優缺點,四種方法分別是直接使用 K8s 的定義,直接放到環境變數,使用 annotation 描述,使用 Knative 自定義的描述。

  1. 移除 Galley 和 MCP Source

 Istio Networking 工作組的最新討論結果,決定從 Istio1.6 之後移除 Galley:Galley 原有的職責驗證(validation)和狀態控制器(status controllers)已經合併到 Istiod,而 Galley 剩餘的職責 MCP Source 將被直接刪除。備註:MCP 功能還存在,Istiod 保留有 MCP sync 的角色。

開源專案推薦

  1. BotKube

BotKube 是一個監控 Kubernetes 叢集並提供告警服務的應用,支援推送訊息至 Slack,Mattermost 以及 ElasticSearch。它通過規則過濾 Kubernetes 事件並進行定向報警。另外還提供對當前叢集中的資源做一些固定的 YAML 檢查。

次條 圖2.png

  1. PrometheusAlert

PrometheusAlert 是一個運維告警中心訊息轉發系統,支援主流的監控系統 Prometheus , Zabbix , 日誌系統 Graylog 和資料視覺化系統 Grafana 發出的預警訊息,支援釘釘等各種主流告警方式。

  1. YugabyteDB

一個高效能、雲原生的分散式 SQL 資料庫,適用於雲原生 OLTP 應用,具有較高的擴充性、容錯性以及支援異地容災。

本週閱讀推薦

  1. 《How to detect outdated Kubernetes APIs》

隨著 Kubernetes 版本迭代,有一部分 API 被逐漸 deprecate 。這篇文章介紹瞭如何用 Deprek8 ,一個基於 Open Policy Agent 規則的工具,對你倉庫中的 YAML 是否引用 deprecated API 進行檢測。

  1. 《quality of service and oom in Kubernetes》

文章詳細介紹了 Kubernetes 中的 QoS 機制,並介紹了 OOM 發生後,Linux Kill 程式的過程以及 Kubernetes 如何 evict Pod。

  1. 《A primer: Continuous Integration and Continuous Delivery (CI/CD) 》

文章深入探討了 CI/CD 的關鍵點,包括版本控制、開發分支與模式、釋出流水線以及自動化測試等。

  1. 《Kubernetes 1.18 Feature Server-side Apply Beta2》

介紹了 Kubernetes 1.18 中在 Server-side Apply 上新增的特性。1.18 中增加了 managedFields,所有 server-side apply 都被記錄在 mangedFields 中,包括修改的欄位、修改時間以及修改人。

雲原生網路研討會邀您參加

點選立即預約直播

416直播海報.png

阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公眾號。”

更多原創文章乾貨分享,請關注公眾號
  • Argo 專案加入 CNCF 孵化器 | 雲原生生態週報 Vol. 45
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章