業界要聞
CNCF 宣布 TUF(The update Framework)項目正式畢業,成為繼 Kubernetes、Premetheus、Envoy、CoreDNS、containerd、Fluentd Jaeger 以及 Vitess 之後,第九個正式畢業的項目。TUF 是一項用于保護軟體更新系統的開源安全技術,也是從雲原生計算基金會畢業的第一個以規範與安全性為重點的項目。與此同時,TUF 還是首個源自高校的 CNCF 畢業項目。
- CVE-2019-18801:該漏洞通過向下遊發送 HTTP/2 大 header 請求影響 Envoy 的 HTTP/1 編解碼器,利用此漏洞可能導緻拒絕服務、權限逃逸或資訊洩露;
- CVE-2019-18802:HTTP/1 編解碼器沒有修剪掉 header 值之後的空格,使攻擊者可以繞開 Istio 的政策,最終導緻資訊洩露或特權更新;
- CVE-2019-18838:收到不帶 "Host" header HTTP 請求後, Envoy 路由管理器會由于空指針導緻 Envoy 程序異常終止。
解決方案
- 對于 Istio 1.2.x 版本:更新到 Istio 1.2.10 或以上;
- 對于 Istio 1.3.x 版本:更新到 Istio 1.3.6 或以上;
- 對于 Istio 1.4.x 版本:更新到 Istio 1.4.2 或以上。
- 随着 Kubernetes 的愈發普及和标準化,應用場景越來越複雜,服務網格的需求會快速增加;
- Istio 的先發優勢會越來越明顯,以至于它很難被擊敗,因為越來越多的軟體供應商會提供 Istio 的解決方案;
- 更多的使用場景會出現,目前服務網格的使用場景主要在 "mTLS(統一鑒權解決方案)",“應用可觀測性解決方案”,“流量管了解決方案”,2020 年會出現服務網格技術的殺手級解決方案。
上遊重要進展
Kubenetes
增加用于 Node 協作的租約,該提案主要解決的是多個元件對 Node 均有操作,加鎖獨占的問題,比如線上 debug Node 問題的時候,又比如 Node 更新系統起作用的時候,不希望 Node 快照備份系統起作用。
- 一階段是建構了新的排程架構,目标是把 scheduler 變成一個執行不同擴充插件的 callback 的引擎,可以注冊 callback 函數,把一系列排程計算、預測相關的函數作為 plugin;
- 二階段 的主要目标是把原先内置在 K8s scheduler 裡面的預測和排程算法移入對應的 plugin 中通過排程架構調用,許多 PR 圍繞該目标在展開。
rktlet 是基于容器運作時
rkt 項目的 CRI(Container Runtime Interface) 實作,類似 kubelet,随着 rkt 項目退出 CNCF,rktlet 也無人維護,如今正式被移出。
Knative
在 Knative 中,RevisionTemplateSpec 像 PodSpec 的一個子集,隻實作了部分功能。為了保持 Knative 的簡易性,哪些字段需要加,哪些字段不需要加,文檔中列出了一些條件。另外針對運維角色,有些字段不是面向開發的,但 K8s 都把字段暴露出來了,K8s 這樣做不意味着 Knative 也需要這樣做,可以把它作為一個 Configmap 的配置值或者新增運維的 CRD。
在事件系統中,事件生産者和消費者通常不直接通信。在許多情況下,都涉及充當事件總線的消息中間件。通過這種方式,可以對事件進行集中管理,消費者和生産者可以發出和訂閱哪些内容,并且可以設定過濾器或政策。是以,引入了事件域的定義。
Istio
Istio CNI 競争問題是指在通過使用 Istio CNI 插件配置容器網絡安裝 iptables 規則時,可能會遇到應用程式的 pod 在 Istio CNI 配置完成之前就啟動,導緻出現沒有配置 iptables 規則的應用程式 pod 出現,這會導緻安全問題,因為可以繞開所有的 Istio 政策檢查。
社群讨論了可能在 Istio1.5 中提供的短期方案,并提出長期方案是希望 K8s 提供标準方法:在節點排程 Pod 之前,確定關鍵守護程式已經準備好;如果關鍵守護程式失敗,請污染節點。後續将與 K8s 社群繼續讨論。
開源項目推薦
基于OAM(開放應用模型)的 Go 語言 SDK,SDK 中包含了 OAM Spec 的解析和 Controller 架構,可以快速建構 OAM 的實作,快速對接标準應用模型。
Vault 是 HashiCorp公司(旗下還有Vagrant,Terraform,Consul 等知名産品)維護的開源軟體,它的設計思想基于雲原生背景下動态基礎設施的特點,在雲上的不同網絡層以及不同的服務之間已經很難找到傳統的信任邊界,服務之間更加強調以身份(identity)為核心的認證和通路控制,而不是像傳統靜态基礎設施中以 IP、主機位址作為信任憑證(
與 K8s 對接)。
kube-score 是 K8s 對象靜态檢查工具,通過分析 K8s 對象的 Yaml 檔案做一些推薦,以提升可靠性和安全性。
本周閱讀推薦
InfoQ 國際總站發表文章《阿裡巴巴視角下的開放應用模型》,詳細講述了 OAM 的由來以及阿裡巴巴在 K8s 應用管理上的實踐。
使用 Vault 在 Kubernetes 體系中提供動态資料庫鑒權資訊,文中針對雲原生場景下 Pod 生命周期短、變化快等問題,Vault 提供了一系列 Policy 解決動态鑒權資訊注入的問題。
在 Kubernetes 上 debug DNS 問題的指南。
本文介紹了螞蟻金服和阿裡巴巴集團場景下對 Sidecar 容器的各種使用方式。
從 2008 年基于核心 cgroup 的 LXC 誕生至今,現代 Linux 的容器化已逾 10 年,先後有基于 cgroup/namespace 的程序隔離容器技術、基于 CPU 硬體指令集的虛拟化技術,以及通過重寫核心功能實作的使用者空間核心容器技術紛紛登場,各有千秋。
StackRox 的聯合創始人,首席技術官Ali Golshan 對 2020 年技術發展做了一些預測,這些預測涉及 Kubernetes 和服務網格技術的增長。
“ 阿裡巴巴雲原生 關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術圈。”