Falco 進入 CNCF Incubator 專案 | 雲原生生態週報 Vol. 35
作者 | 王思宇、陳潔、敖小劍
業界要聞
- Falco 進入 CNCF Incubator 專案
原於 2018 年 8 月進入 sandbox,旨在 Kubernetes 執行時環境下支援配置規則來加強應用安全性、降低風險。
- Kubernetes v1.17.1 釋出
解決部分 cloud provider 和 kubelet 相關問題,比如:
- kubelet 更新 Pod ready status 失敗
- kubelet 清理 Pod volumes 發生 panic
- CFP 2020 K8s Contributor Summit Amsterdam 開始徵集 talk
將與 KubeCon 2020 EU 同期進行,歡迎 K8s contributor 參會。
- Istio 1.14.3 釋出
Istio 釋出 1.4.3 版本,此版本修復看一些 bug 以提高系統魯棒性和使用者體驗。
上游重要進展
Kubenetes
- LoadBalancer Service 支援多種不同 protocol 型別的 port
目前一個 LoadBalancer Service 可以寫多個 port,但是這些 port 的型別必須相同,比如都是 tcp 或 udp。這個 PR 允許在一個 LoadBalancer Service 中定義多種不同型別的 port,以支援不同雲廠商提供的 service 服務。(對應的 PR)
- 解決元件特定 ComponentConfig 的配置問題
ComponentConfig 是支援編寫 Kubernetes-style 的配置檔案,來給各種 Kubernetes 核心元件作為啟動配置,而不是直接通過命令列引數的方式配置,這個 KEP 是為了解決在編寫 ComponentConfig 的時候不同元件的特定配置問題。
- device manager 中增加 release api 介面
在 Kubelet devicemanager 中增加 release 介面,支援 device plugin 釋放已經分配給 Pod 的裝置。
type Manager interface { // ... // Release release devices allocated to pods. Release(pod *v1.Pod) error }
- PDB status 中新增 conditions
conditions 用於上報當前 PDB 的一些狀態資訊,比如 PodDisruptionBudgetFailure(Failure),用於 disruption controller 在 failSafe 階段上報狀態標識。
type PodDisruptionBudgetStatus struct {
// ...
// Conditions represents the latest available observations of a PDB's current state.
// +patchMergeKey=type
// +patchStrategy=merge
Conditions []PodDisruptionBudgetCondition
}
Istio
- 為Telemetry V2 開啟 TCP 元資料交換
Telemetry V2 依靠對等代理之間的元資料交換,以便它們可以在不依賴於 side lookup 的情況下產生豐富的遙測資訊。 Istio 1.4 使用 "x-envoy-peer-metadata" http header 來支援 http 流量的元資料交換。Istio 1.5 將支援 TCP 流量的元資料交換,該提案目前已經得到批准。
- 在 AuthorizationPolicy 實現 deny 和 exclude
Istioi 社群提出更改 AuthorizationPolicy 的 API,以支援拒絕 (deny) 和排除 (exclude) 語義。目標包括支援通過使用 AuthorizationPolicy 來拒絕請求,並支援在 AuthorizationPolicy 中使用否定匹配 (not_XXX)。使用者無需複製或修改其現有策略即可使用新功能。
- 可驗證的自定義屬性
在 SPIFFE 標識(service account 和 namespace)之外,允許客戶在 Istio 授權中建立和使用可驗證的自定義屬性。當前這個提案還處於早期階段,討論動機和用例,收集反饋,尚未開始設計。
開源專案推薦
- Flux
一個面向 GitOps 流程的 operator(CNCF sandbox 專案),支援監聽 Git 變化並自動觸發一系列打包部署等操作。
- Kubeless
符合原生 Kubernetes 模式的 serverless framework。安裝部署之後,只需要提交自己寫的 code 以及依賴給 kubeless cli,由 kubeless 負責部署執行。
本週閱讀推薦
- 《Manage Thousands of Clusters with GitOps and the Cluster API》
Weaveworks 團隊如何通過 GitOps 和 Cluster API 來管理數千個 Kubernetes 叢集。其中 GitOps 正是使用了上面開源專案推薦中介紹的 Flux 工具,來把 GitOps 鏈路打通,並結合 Cluster API 組成了 GitOps 模式的多叢集管理。
- 《Vault replication across multiple datacenters on Kubernetes》
本文介紹了基於 Kubernetes 之上,如何管理跨多個數據中心的 Vault 叢集。
- 《Kubernetes Networking Demystified - A Brief Guide》
本文從一次網路連線開始,介紹了 Kubernetes 中各類網路鏈路和配置,包括 Service、Load balancer、kube-proxy、Pod 網路等,推薦對 Kubernetes 網路機制感興趣的同學閱讀。
- 《從零開始入門 K8s | GPU 管理和 Device Plugin 工作機制》
本文主要介紹 K8s 中 GPU 管理方式、如何為容器配置 GPU,以及對應的 Extended Resource 和 Device Plugin的工作原理。
- 《K8s 實踐 | 如何解決多租戶叢集的安全隔離問題?》
如何解決多租戶叢集的安全隔離問題是企業上雲的一個關鍵問題,本文主要介紹了 Kubernetes 多租戶叢集的基本概念和常見應用形態,以及在企業內部共享叢集的業務場景下,基於 Kubernetes 原生和 ACK 叢集現有安全管理能力快速實現多租戶叢集的相關方案。
雲原生實踐峰會即將開幕
“阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公眾號。”