尋求啟用自動(dòng)駕駛汽車(chē)涉及許多移動(dòng)部件和大量軟件。通用汽車(chē)的Cruise Automation部門(mén)使用的軟件組件包括開(kāi)源Kubernetes云原生平臺。

Cruise不僅僅是將Kubernetes作為一個(gè)項目使用,它還在擴展它,并通過(guò)一個(gè)名為RBACSync的項目幫助改進(jìn)安全策略控制。RBAC或基于角色的訪(fǎng)問(wèn)控制是Kubernetes的一個(gè)關(guān)鍵安全組件,默認情況下它并不像Cruise需要它那樣工作。以真正的開(kāi)源方式,Cruise工程師構建了RBACSync項目并開(kāi)源,實(shí)現更廣泛的使用和參與。
“Kubernetes用于在Cruise運行大多數服務(wù)器端工作負載,”Cruise基礎設施工程團隊的高級軟件工程師Stephen Day告訴eWEEK。“這包括乘車(chē)調度,測繪,數據處理和車(chē)隊管理。”
Kubernetes是一個(gè)開(kāi)源平臺,最初由Google開(kāi)發(fā),自該組織于2015年7月成立以來(lái)一直是云原生計算基金會(huì )(CNCF)的核心.Kubernetes是一個(gè)容器編排系統,使組織能夠提供,管理,跨分布式系統部署和運行容器。Kubernetes受益于各種采用者和貢獻組織,并得到所有主要公共云提供商的支持。3月25日,Kubernetes 1.14平臺發(fā)布,集成了對Windows節點(diǎn)的支持。
克魯斯的Kubernetes
雖然Kubernetes是Cruise開(kāi)發(fā)和基礎設施堆棧的一部分,但它實(shí)際上并沒(méi)有進(jìn)入自動(dòng)駕駛汽車(chē)。
“我們不會(huì )在車(chē)上使用Kubernetes,但車(chē)輛確實(shí)會(huì )與Kubernetes上運行的服務(wù)進(jìn)行對話(huà),”Day說(shuō)。
Cruise利用Google Kubernetes Engine作為其平臺提供商,該提供商集成了核心Kubernetes RBAC功能,使運營(yíng)商能夠定義運營(yíng)角色。然后,角色以稱(chēng)為“角色綁定”的方法連接到資源,該方法啟用基于策略的訪(fǎng)問(wèn)控制。Cruise面臨的挑戰是,在定義Kubernetes RBAC方法中用戶(hù)如何屬于群體方面存在差距。Day表示雖然核心Kubernetes項目確實(shí)具有向群組添加個(gè)人的功能,但是存在一些限制導致Cruise出現問(wèn)題。
“我們的方法允許我們將身份提供者和群體成員分離,使我們能夠改變他們的來(lái)源以及群體的形成方式,”Day解釋道。“只要我們有強大的身份進(jìn)入集群,我們就可以根據我們的要求對這些集團進(jìn)行映射。”
RBACSync受益于Kubernetes中稱(chēng)為控制器的核心功能,可以將新功能添加到平臺中。RBACSync控制器查看連接到Kubernetes的自定義資源定義(CRD)中的配置,以識別組和角色引用。每當發(fā)生更改時(shí),系統都會(huì )為RBAC策略創(chuàng )建與組綁定的角色。
“通過(guò)遵循現有RBAC系統中的慣例,RBACSync適用于已經(jīng)存在的內容,”Day說(shuō)。“它可以無(wú)縫地使用現有角色,包括其他項目和Helm圖表定義的角色。我們的目標是盡可能推動(dòng)RBAC,然后從那里開(kāi)始工作。”
開(kāi)源貢獻
在公開(kāi)宣布RBACSync作為一項開(kāi)源工作時(shí),Cruise正在尋求幫助自己和其他人。Day注意到Cruise剛剛發(fā)布了版本1.1的RBACSync,它有一些穩定性修復和支持綁定到集群角色。
“我們的目標是回饋可能對他人有用的東西,看看它帶給我們的地方,”他說(shuō)。“我們希望其他人能夠在他們的基礎設施中獲取并增加對新上游或不同場(chǎng)景的支持。
