From 745e91612b489f1de1fb9e3e8957cb2cf86de526 Mon Sep 17 00:00:00 2001 From: Pinghao Wu Date: Thu, 10 Oct 2024 11:57:00 +0800 Subject: [PATCH] RelatedWorks: multi-tenancy model of kubernetes --- Sections/3.RelatedWorks.tex | 16 +++++++++++++++- ref.bib | 17 +++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Sections/3.RelatedWorks.tex b/Sections/3.RelatedWorks.tex index 2325930..dd240e1 100644 --- a/Sections/3.RelatedWorks.tex +++ b/Sections/3.RelatedWorks.tex @@ -1,7 +1,7 @@ \chapter{相關研究} \label{ch:related-works} -本章節敘述系計中對於此議題所發展出的 CScloud Platform-as-a-Service (PaaS) 雛型系統,並分析其架構優劣,作為本研究的基石。 +本章節敘述系計中對於此議題所發展出的 CScloud Platform-as-a-Service (PaaS) 雛型系統,並分析其架構優劣,作為本研究的基石,另外討論 Kubernetes 上常見的多租戶模型,分析對本研究的適用性。 \section{CScloud} @@ -28,3 +28,17 @@ 在安裝特定軟體的方面,因為使用的程式語言 PHP 與 Helm 所採用的 Go 不符,二代採取以執行指令操作伺服器上的 Helm CLI 達成。這種方式雖然易於實做,但也容易產生使用者能夠注入其他指令或是預期外的參數等漏洞,影響到伺服器的安全。 由於 Kubernetes 非同步的設計,狀態更新的推送顯得十分重要,而二代的網頁實做並沒有針對這點設計,而是仰賴於完整的頁面刷新,這也可能造成過度重複執行其餘資料未變更的邏輯運算,間接使得運行成本增加。 + +\section{Kubernetes 的多租戶模型} + +CScloud 採用的基於 Namespace 的多租戶模型由於 Kubernetes 本身的設計,需要大量的額外加固開發成本以確保租戶間的獨立性。在 Kubernetes 下,由於功能面的廣泛,以及專注於單一租戶的歷史脈絡,導致實做多租戶有不同的方法與租戶隔離程度,其中依照使用場景又常分為軟、硬兩種多租戶層級\cite{k8smultitenancy}。 + +軟多租戶指的是租戶間擁有一定程度的信任,在租戶間的隔離與安全性上的需求較低,而專注於防止租戶間的意外狀況影響,常見於同個公司內部的不同團隊。硬多租戶則是指租戶間無法存在信任,任一租戶都必須視為可能的攻擊者,在設計上必須以隔離、安全性為優先考量。本研究欲達成的目標較偏向硬多租戶。 + +Kubernetes Namespaces 由於只影響 API 上能描述的 resources 相互關係,並不隱含實際工作負載的隔離,常用來實做軟多租戶。然而,透過 admission control 我們仍能為 resource 內容加以把關,強制使用者開啟對工作負載的額外隔離措施,彌補 Namespaces 在此方面的不足,使其更為貼近硬多租戶的目標。 + +在硬多租戶的議題下,另一個常見許多的手法是基於叢集的多租戶模型,透過給予每的租戶一個獨立的叢集,進而免除對叢集本身的大多數加固需求,以租戶的角度來看單純許多,並且能夠使用較完整的 Kubernetes 功能。 + +基於叢集的多租戶由於需要動態的配置多個獨立叢集與節點,因此經常透過大型虛擬機平台實做,加上 cluster API 達成相關的自動化。Cluster API 是 Kubernetes API 的延伸,透過自訂 resource 種類,將租戶叢集的管理以 controller 的方式實做,達成以一個管理用母叢集,管理多個租戶子叢集的形式,減少在維運上的負擔。有些手法另外會將叢集邏輯元件在部屬上盡可能與叢集本身抽離,以其他方式統一代管,避免租戶操作上的意外影響,提昇可靠度,並且降低多叢集在資源上的部份負擔。 + +雖然基於叢集的多租戶具備功能完整、架構簡潔與高度隔離的優勢,並且已有較多完整的現成解決方案,然而資源開銷較大,本研究有上千個潛在的租戶,考量到系計中的硬體資源,此方法並不實際。本研究採取基於 Namespace 的多租戶設計,並且將其加固以貼近硬多租戶,使用較低的資源成本,但仍提供可接受的安全性。 diff --git a/ref.bib b/ref.bib index 2fe5216..ad88ce4 100644 --- a/ref.bib +++ b/ref.bib @@ -257,3 +257,20 @@ year = {2019}, } +@article{lewis2002psychometric, + title = {Psychometric evaluation of the PSSUQ using data from five years of usability studies}, + author = {Lewis, James R}, + journal = {International Journal of Human-Computer Interaction}, + volume = {14}, + number = {3-4}, + pages = {463--488}, + year = {2002}, + publisher = {Taylor \& Francis} +} + +@misc{k8smultitenancy, + title = {{Kubernetes} - Multi-Tenancy Design Scratch Space}, + author = {Jessie Frazelle}, + url = {https://docs.google.com/document/d/1PjlsBmZw6Jb3XZeVyZ0781m6PV7-nSUvQrwObkvz7jg}, + urldate = {2024-09-25}, +} -- 2.45.2