CNCF是一個(gè)開源軟件集合體,旨在推動云原生計(jì)算的采用。CNCF由開發(fā)人員、最終用戶和IT服務(wù)提供商組成的社區(qū)驅(qū)動,這些社區(qū)協(xié)作創(chuàng)建開源的、供應(yīng)商中立的工具。CNCF為項(xiàng)目創(chuàng)建工具,幫助促進(jìn)云原生計(jì)算的采用。這些項(xiàng)目通常托管在GitHub上,項(xiàng)目會經(jīng)歷三個(gè)階段:沙箱、孵化和畢業(yè)。以下5個(gè)新的CNCF工具,你應(yīng)該考慮將它們添加到應(yīng)用程序堆棧中。
一、Harbor
Harbor是一個(gè)開源容器鏡像注冊表,最近進(jìn)入了孵化狀態(tài)。公有鏡像注冊表可以幫助企業(yè)快速開展工作,然而,它們極易受到攻擊,而且可以被篡改。Harbor是一個(gè)私有的內(nèi)部注冊表,它面向那些不想使用公有或基于云的存儲庫的組織。Harbor易于安裝,可以通過Docker Compose腳本作為獨(dú)立注冊表部署,也可以使用Helm chart將其部署到Kubernetes平臺。
一旦部署,Harbor允許你在稱為項(xiàng)目的邏輯組中輕松隔離容器鏡像,使鏡像生命周期的管理更容易,然后可以向用戶提供對這些項(xiàng)目的基于角色的訪問,以確保安全性。Harbor還會掃描鏡像以查找漏洞。漏洞掃描由Clair在rest中使用一組可配置的源來識別漏洞。漏洞掃描可以手動完成,也可以基于設(shè)定的頻率或基于策略自動完成。
Harbor使用了一個(gè)干凈的基于web的UI,使得瀏覽存儲庫和鏡像非常高效。其他功能包括Webhook通知,可以用來快速地將注冊表與CI/CD工具集成。項(xiàng)目可以在主要云供應(yīng)商的注冊表之間復(fù)制,從而使Harbor不受供應(yīng)商的影響。使用Harbor,你可以應(yīng)用異常,這樣開發(fā)人員就可以繼續(xù)使用帶有已知bug的容器,而不會有任何中斷。用戶可以設(shè)置一個(gè)項(xiàng)目可以包含多少個(gè)標(biāo)記的限制。項(xiàng)目配額也可以設(shè)置為允許每個(gè)項(xiàng)目具有特定的存儲容量。默認(rèn)配額可以全局應(yīng)用,也可以根據(jù)需求應(yīng)用于每個(gè)項(xiàng)目。盡管這個(gè)工具還處于醞釀階段,但是那些走向云原生的企業(yè)應(yīng)該考慮將Harbor作為其應(yīng)用程序堆棧的一部分。
二、The Updated Framework
The Updated Framework(TUF)是最新的CNCF畢業(yè)項(xiàng)目。這是CNCF第一個(gè)安全相關(guān)的項(xiàng)目。更新應(yīng)用程序、庫包和系統(tǒng)包對于不斷添加新功能和解決舊漏洞非常重要。軟件更新系統(tǒng)負(fù)責(zé)識別、定位并定期下載更新。但是,承載這些更新的存儲庫會頻繁地獲取更新,這使得攻擊者很容易利用更新發(fā)起隱藏攻擊。攻擊者可以誘使更新系統(tǒng)下載較舊的、不太安全的版本或被篡改的更新,從而讓攻擊者進(jìn)入你的系統(tǒng)。
TUF提供了一個(gè)框架,可用于保護(hù)這些更新和防御攻擊。TUF保護(hù)你免受各種攻擊和更新漏洞的攻擊。TUF通過添加關(guān)于存儲庫或應(yīng)用程序狀態(tài)的可驗(yàn)證記錄來實(shí)現(xiàn)這一點(diǎn)。
元數(shù)據(jù)包括以下信息:元數(shù)據(jù)版本號、元數(shù)據(jù)過期日期、元數(shù)據(jù)上的簽名、文件的哈希、可信簽名密鑰。
然后使用此記錄驗(yàn)證更新的真實(shí)性。TUF使用各自的存儲庫元數(shù)據(jù)下載更新以驗(yàn)證更新,并且只有在更新是可信的情況下,才將它們交給你選擇的更新系統(tǒng)。這樣,軟件更新系統(tǒng)就不必處理額外的元數(shù)據(jù)。
三、Vitess
Vitess是一個(gè)云原生數(shù)據(jù)庫系統(tǒng),它通過CNCF hoops加速并成為其第八個(gè)畢業(yè)項(xiàng)目。Vitess最初是由YouTube在2010年開發(fā)的,目的是擴(kuò)展其存儲空間。Vitess是一個(gè)數(shù)據(jù)庫集群系統(tǒng),它將重要的SQL功能與NoSQL的可伸縮性結(jié)合起來,并可以水平擴(kuò)展。
Vitess可以輕松地部署、擴(kuò)展和管理大型開源實(shí)例集群,而不管它是托管在私有云還是公有云上,還是托管在本地。Vitess幫助組織在不影響性能的情況下擴(kuò)展其數(shù)據(jù)庫存儲。MySQL本身并不支持分片,但是,隨著數(shù)據(jù)庫的增長,你會需要它。使用Vitess,你無需向應(yīng)用程序添加切分邏輯即可獲得此功能,從而確保應(yīng)用程序更改保持最小。
Vitess以多種方式處理數(shù)據(jù)庫性能。使用Vitess,可以限制在任何給定時(shí)間運(yùn)行的最大并行事務(wù)數(shù)。Vitess重寫有問題的查詢,并使用緩存機(jī)制來處理重復(fù)的查詢。如果查詢無法獲取結(jié)果,Vitess可以在指定時(shí)間后自動終止查詢。Vitess還監(jiān)視和分析數(shù)據(jù)庫,以確保最佳性能。使用Vitess,你可以部署和管理大量的SQL數(shù)據(jù)庫實(shí)例,不會有任何麻煩。Vitess還允許你管理表的訪問控制列表(ACL),以便為連接的用戶提供適當(dāng)?shù)脑L問權(quán)限。
四、Falco
Falco是CNCF第一個(gè)處于孵化狀態(tài)的運(yùn)行時(shí)安全項(xiàng)目。Falco最初是由Sysdig開發(fā)的,是一個(gè)監(jiān)控容器運(yùn)行時(shí)的開源計(jì)劃。對于云原生工作負(fù)載,安全性至關(guān)重要。而且,即使有數(shù)個(gè)適當(dāng)?shù)倪M(jìn)程來處理應(yīng)用程序、容器和網(wǎng)絡(luò)級別上的安全性,一些風(fēng)險(xiǎn)仍然會被忽略。當(dāng)所有其他安全進(jìn)程失敗時(shí),運(yùn)行時(shí)安全性是最后一道防線。
Falco通過提醒用戶任何被認(rèn)為是意外的事件或活動,提供了無與倫比的運(yùn)行時(shí)檢測。Falco可以很容易地部署為一個(gè)長期運(yùn)行的守護(hù)進(jìn)程或Debian/rpm包。可以使用規(guī)則文件配置Falco——該文件指定要查找的事件。一旦Falco遇到指定的事件,它就會發(fā)出警報(bào)通知用戶。Falco使用Linux內(nèi)核模塊提供全面的運(yùn)行時(shí)安全性。
五、KubeVirt
并非所有基于VM的工作負(fù)載都可以被容器化——隨著企業(yè)冒險(xiǎn)遷移項(xiàng)目,這一事實(shí)變得越來越明顯。KubeVirt為解決這一困境提供了一個(gè)很好的解決方案。使用KubeVirt,你可以通過一個(gè)統(tǒng)一的平臺運(yùn)行容器化和虛擬化工作負(fù)載,這有助于彌合傳統(tǒng)和現(xiàn)代應(yīng)用程序開發(fā)方法之間的差距。這允許開發(fā)人員繼續(xù)開發(fā)新的應(yīng)用程序,同時(shí)以自己的速度緩慢遷移虛擬化組件。
KubeVirt允許開發(fā)人員使用Kubernetes管理虛擬機(jī)。它是通過使用K8自定義資源定義API以及與K8集群一起運(yùn)行的其他控制器和代理將虛擬化資源類型添加到Kubernetes,來實(shí)現(xiàn)這一點(diǎn)的。