云原生愛好者周刊:服務(wù)網(wǎng)格的困境與破局

云原生一周動態(tài)要聞:
KEDA 從 CNCF 沙箱項(xiàng)目遷移到孵化項(xiàng)目 Harbor Operator 1.1.0 發(fā)布 Litmus 2.0.0 發(fā)布 Grafana 8.1.2 發(fā)布 OpenSSH 8.7 發(fā)布 開源項(xiàng)目推薦 文章推薦
云原生動態(tài)
KEDA 從 CNCF 沙箱項(xiàng)目遷移到孵化項(xiàng)目
CNCF 技術(shù)監(jiān)督委員會(TOC)已經(jīng)投票決定接受 KEDA 成為 CNCF 的孵化項(xiàng)目。
Kubernetes Event-Driven Autoscaling(KEDA)是一個(gè)用于 Kubernetes 的單一用途的事件驅(qū)動自動調(diào)節(jié)器,可以很輕松地添加到 Kubernetes 集群中來擴(kuò)展應(yīng)用。它的目的是簡化應(yīng)用程序的自動縮放,并通過支持?jǐn)U展到零來優(yōu)化成本。
KEDA 創(chuàng)建于 2019 年 5 月,是微軟和紅帽的合作項(xiàng)目,并于 2020 年 3 月加入 CNCF 沙盒。自加入沙盒以來,該項(xiàng)目的終端用戶有了很大的增長,包括阿里巴巴、CastAI、KPMG、Meltwater、微軟等。該項(xiàng)目團(tuán)隊(duì)由來自微軟、紅帽和 Codit 三個(gè)組織的 4 名維護(hù)者組成。
詳情見[1]
Harbor Operator 1.1.0 發(fā)布
Harbor Operator 1.1.0 已經(jīng)發(fā)布。值得注意的功能包括:
支持部署 Harbor v2.3 支持 Kubernetes 1.21 版本 將入口版本升級為 v1 完善 CRD 定義,提供一致的數(shù)據(jù)庫、存儲和緩存配置規(guī)范(引入新的 CRD 版本 v1beta1) 支持用基于 CRD 的聲明方式應(yīng)用 day2 配置 支持用負(fù)載均衡器公開 Harbor 服務(wù) 為 S3 存儲提供額外的配置選項(xiàng) 以一致的格式進(jìn)行日志記錄 擴(kuò)展底層運(yùn)算符(PostgreSQL、Redis 和 Minio)的支持版本
了解更多細(xì)節(jié),請查看 v1.1.0 發(fā)布頁面[2]。
Litmus 2.0.0 發(fā)布
Litmus 2.0.0 為 LitmusChaos 平臺帶來了更新的功能,使混沌工程的實(shí)踐更加高效。以下是新版本的顯要特征:
混沌中心 一個(gè)混沌控制平面或門戶,提供對跨數(shù)據(jù)中心/云的多個(gè)集群的混沌操作的集中管理。控制平面通過安裝在注冊集群上的代理進(jìn)行實(shí)驗(yàn)。 包括記錄在案的 API,可用于以編程方式調(diào)用混沌。 圍繞混沌執(zhí)行提供可視化能力和分析。 支持項(xiàng)目-團(tuán)隊(duì)-用戶的結(jié)構(gòu),以便在團(tuán)隊(duì)內(nèi)協(xié)作進(jìn)行混沌操作。 Litmus 工作流 引入混沌工作流--(a)自動設(shè)置依賴關(guān)系(b)幫助創(chuàng)建有多個(gè)故障的復(fù)雜混沌場景(c)支持定義負(fù)載/驗(yàn)證工作和混沌注入。 提供了以不同方式創(chuàng)建/運(yùn)行工作流的靈活性--通過模板,從集成中心,以及自定義上傳。 多租戶 支持設(shè)置(控制平面和代理)和執(zhí)行混沌實(shí)驗(yàn):集群范圍和命名空間范圍模式,以幫助在共享集群中以自助服務(wù)模式進(jìn)行操作 可觀測性和穩(wěn)態(tài)假設(shè)的驗(yàn)證 提供更多帶有額外過濾器的 Prometheus 指標(biāo)集--可用于應(yīng)用儀表盤的儀表,以觀察混沌影響。 提供多樣化的探針集,自動驗(yàn)證穩(wěn)態(tài)假設(shè)--從而提高運(yùn)行自動混沌實(shí)驗(yàn)的效率 用于混沌狀態(tài)的 GitOps 與基于 Git 的 SCM 集成,為混沌工件(工作流)提供一個(gè)單一的真實(shí)來源,這樣的變化在 Git 源和混沌中心之間是雙向同步的,從而拉出最新的工件來執(zhí)行。 提供一個(gè)事件追蹤的微服務(wù),在 GitOps 工具(如 ArgoCD、Flux)升級時(shí)自動啟動 "訂閱的 "混沌工作流。 非 Kubernetes 混沌 增加了在基礎(chǔ)設(shè)施(云)資源上注入混沌的實(shí)驗(yàn),如 VMs/instances 和磁盤(AWS、GCP、Azure、VMWare)--無論它們是否承載 Kubernetes 集群。
詳情見[3]
Grafana 8.1.2 發(fā)布
Grafana 8.1.2 現(xiàn)已發(fā)布。Grafana 是一個(gè)功能豐富的指標(biāo)標(biāo)準(zhǔn)儀表板和圖形編輯器,用于分析和監(jiān)控 Graphite、Elasticsearch、OpenTSDB、Prometheus 和 InfluxDB。
功能和增強(qiáng):
AzureMonitor:添加對 PostgreSQL 和 MySQL 靈活服務(wù)器的支持。 Datasource:將 datasource health check 失敗的 HTTP 狀態(tài)代碼更改為 400。 Explore:將 span duration 添加到 trace viewer 的左側(cè)面板。 Plugins:在提供插件資產(chǎn)時(shí)使用文件擴(kuò)展名 allowlist,而不是檢查 UNIX 可執(zhí)行文件。 Profiling:支持將 pprof 服務(wù)器綁定到自定義網(wǎng)絡(luò)接口。 Search:使搜索圖標(biāo)鍵盤可導(dǎo)航。 Template variables:鍵盤導(dǎo)航改進(jìn)。 Tooltip:在分鐘時(shí)間范圍內(nèi)顯示毫秒 (ms)。
詳情見[4]
OpenSSH 8.7 發(fā)布,實(shí)驗(yàn)性 SFTP 支持 SCP
OpenSSH 8.7 發(fā)布了,作為這個(gè)廣泛使用的 SSH 服務(wù)器/客戶端軟件的最新功能版本。
在 OpenSSH 8.7 中,突出的變化主要圍繞 SCP 工作和為未來的變化做準(zhǔn)備。OpenSSH 8.7 的亮點(diǎn)包括:
準(zhǔn)備在下一個(gè) OpenSSH 版本中默認(rèn)停用 ssh-rsa 簽名方案。我們鼓勵(lì)用戶現(xiàn)在就轉(zhuǎn)移到更好、更安全的替代方案。 用于遠(yuǎn)程到遠(yuǎn)程拷貝的 SCP 現(xiàn)在默認(rèn)通過本地主機(jī)傳輸,以避免在源跳上暴露憑證和其他改進(jìn)。 SCP 增加了對使用 SFTP 協(xié)議傳輸?shù)膶?shí)驗(yàn)性支持,作為 SCP/RCP 協(xié)議的最終替代。SFTP 的使用導(dǎo)致了更可預(yù)測的文件名處理和其他改進(jìn)。scp -s 標(biāo)志將啟用 SFTP 的使用,并計(jì)劃在不久的將來成為默認(rèn)使用。 SSH 和 SSHD 現(xiàn)在采用了一個(gè)更嚴(yán)格的配置文件解析器。 許多錯(cuò)誤修復(fù)和其他小的改進(jìn)。
更多關(guān)于 OpenSSH 8.7 所有變化的細(xì)節(jié)和源代碼下載請?jiān)L問 OpenSSH.com[5]。
開源項(xiàng)目推薦
Kubescape[6]
還記得前段時(shí)間美國國家安全局 (NSA) 發(fā)布了 《Kubernetes 安全加固指南》嗎?現(xiàn)在連檢查 K8s 集群安全配置是否符合 NSA 安全指南的項(xiàng)目都出來了。

Havener[7]
Havener 是一個(gè)用于 與 Kubernetes 交互的高級 CLI 工具,它的目的是提供更豐富的表現(xiàn)形式,并避免使用 kubectl 時(shí)使用參數(shù)很長的場景。下面是它的幾個(gè)常用參數(shù):
havener events[8] - 展示 Kubernetes 集群的 Events 信息 havener logs[9] - 檢索所有 Pod 的日志文件 havener node-exec[10] - 在 Kubernetes 節(jié)點(diǎn)上執(zhí)行命令 havener pod-exec[11] - 在 Pod 中執(zhí)行命令 havener top[12] - 顯示 CPU 和內(nèi)存信息 havener watch[13] - 觀察所有命名空間中的所有 Pod 的狀態(tài)

Kubestriker[14]
Kubestriker 是一個(gè)平臺無關(guān)的工具,旨在解決 Kubernetes 集群由于配置錯(cuò)誤而產(chǎn)生的安全問題,并將有助于加強(qiáng)任何組織的整體 IT 基礎(chǔ)設(shè)施。它可以對不同服務(wù)和多個(gè)平臺上的開放端口進(jìn)行大量詳細(xì)檢查,包括自我托管的 Kubernetes 集群、Amazon EKS、Azure AKS 和 Google GKE。
此外,它還可以分析 Kubernetes 基礎(chǔ)設(shè)施相關(guān)組件,并提供可視化的攻擊路徑,展示黑客可能的攻擊路線。

Metacontroller[15]
Metacontroller 是一個(gè) Kubernetes 插件,它可以通過簡單的腳本來編寫和部署自定義控制器。
文章推薦
服務(wù)網(wǎng)格的困境與破局[16]
這篇文章值得一讀,文中花了大量的篇幅來探討容器網(wǎng)絡(luò)的細(xì)節(jié),簡而言之,容器使用 TCP 來進(jìn)行通信時(shí)會有大量的開銷,而 kube-proxy 又額外增加了更多的開銷。如果能直接使用 UDS(UNIX Domain Sockets) 來通信,就可以免去很多不必要的開銷,容器通信不需要 TCP,也不需要 IP,成千上萬的容器都有自己的 UDS,例如 /path/mysocket.sock,每個(gè) UDS 都有唯一的 Inode,而不用擔(dān)心 IP 地址或端口沖突。
如何構(gòu)建比 nginx:alpine 體積還小的鏡像[17]
本文介紹了如何構(gòu)建體積最小的 Nginx 鏡像,甚至比 nginx:alpine 體積還小。
如何加固 Kubernetes 控制平面組件[18]
控制平面作為 Kubernetes 集群的神經(jīng)中樞,管理著集群的狀態(tài)和配置數(shù)據(jù),極易被攻擊者濫用,因此需要對其進(jìn)行加固。
引用鏈接
詳情見: https://www.cncf.io/blog/2021/08/18/keda-moves-from-the-cncf-sandbox-to-become-an-incubating-project/
[2]發(fā)布頁面: https://github.com/goharbor/harbor-operator/releases/tag/v1.1.0
[3]詳情見: https://github.com/litmuschaos/litmus/releases/tag/2.0.0
[4]詳情見: https://github.com/grafana/grafana/releases/tag/v8.1.2
[5]OpenSSH.com: https://www.openssh.com/txt/release-8.7
[6]Kubescape: https://github.com/armosec/kubescape
[7]Havener: https://github.com/homeport/havener
[8]havener events: https://github.com/homeport/havener/blob/main/.docs/commands/havener_events.md
[9]havener logs: https://github.com/homeport/havener/blob/main/.docs/commands/havener_logs.md
[10]havener node-exec: https://github.com/homeport/havener/blob/main/.docs/commands/havener_node-exec.md
[11]havener pod-exec: https://github.com/homeport/havener/blob/main/.docs/commands/havener_pod-exec.md
[12]havener top: https://github.com/homeport/havener/blob/main/.docs/commands/havener_top.md
[13]havener watch: https://github.com/homeport/havener/blob/main/.docs/commands/havener_watch.md
[14]Kubestriker: https://github.com/vchinnipilli/kubestriker
[15]Metacontroller: https://github.com/metacontroller/metacontroller
[16]服務(wù)網(wǎng)格的困境與破局: https://medium.com/hashicorp-engineering/the-trouble-with-service-mesh-6b0336964323
[17]如何構(gòu)建比 nginx:alpine 體積還小的鏡像: https://medium.com/@rockmetoo/smallest-distroless-nginx-container-alpine-c08c3a9cac93
[18]如何加固 Kubernetes 控制平面組件: https://www.cncf.io/blog/2021/08/20/how-to-secure-your-kubernetes-control-plane-and-node-components/
關(guān)于 KubeSphere
KubeSphere (https://kubesphere.io)是在 Kubernetes 之上構(gòu)建的開源容器混合云,提供全棧的 IT 自動化運(yùn)維的能力,簡化企業(yè)的 DevOps 工作流。
KubeSphere 已被 Aqara 智能家居、杭州數(shù)跑科技、本來生活、新浪、華夏銀行、四川航空、國藥集團(tuán)、微眾銀行、紫金保險(xiǎn)、中通、中國人保壽險(xiǎn)、中國太平保險(xiǎn)、中移金科、Radore、ZaloPay 等海內(nèi)外數(shù)千家企業(yè)采用。KubeSphere 提供了開發(fā)者友好的向?qū)讲僮鹘缑婧拓S富的企業(yè)級功能,包括多云與多集群管理、Kubernetes 資源管理、DevOps (CI/CD)、應(yīng)用生命周期管理、微服務(wù)治理 (Service Mesh)、多租戶管理、監(jiān)控日志、告警通知、審計(jì)事件、存儲與網(wǎng)絡(luò)管理、GPU support 等功能,幫助企業(yè)快速構(gòu)建一個(gè)強(qiáng)大和功能豐富的容器云平臺。
