@@ 2,3 2,11 @@
\label{ch:related-works}
本章節敘述系計中對於此議題所發展出的 CScloud PaaS 雛型系統,並分析其架構優劣,作為本研究的基石。
+
+\section{CScloud}
+
+先前系計中已經有意識到基於容器的網頁服務代管平台需求,發展出一套雛型系統,並且歷經兩代變革,分別為 CScloud\cite{cskloud} 與 CScloud with PEKOS (Policy-Enforced Kubernetes OAuth System)\cite{pekos},本文以「一代」與「二代」代稱。雖然發展已久,但實做仍不完全,並未上線開放使用,在架構規劃也有部份缺點。以下簡單帶過其歷史沿革,並以二代為主進行介紹。
+
+一代系統確立了對平台的大致規劃:以 Kubernetes 提供基於容器的網頁代管服務、以 Kubernetes Namespace 在單一叢集下實施多租戶設計、串接 Kubernetes 內建資源配額機制。作者實做了透過根據由 LDAP 獲取的使用者資訊,為使用者設立 Namespace、資源配額以及以 RBAC 控管使用,並提供對平台網頁界面的設計稿,提出以 Helm 簡化使用方式的想法。在使用者驗證上,作者規劃以平台網頁界面透過串接系計中的身份驗證系統,再由網頁界面創立 token 以進行 Kubernetes API 驗證的使用流程。使用者可以根據該 token 自行存取 Kubernetes API,或者直接使用平台網頁界面存取部份功能。但由於作為身份驗證手段的網頁界面尚未實做,使用者無法進行任何操作,系統無法使用待進一步開發。另外作者指出設計上尚缺乏域名使用權的管理機制。
+
+二代系統沿襲了一代對於多租戶與資源配額的設計,另外將身份驗證以 OpenID Connect 協定(基於 OAuth 發展的身份驗證協定)實做,發展出可運作的基本網頁界面,並實做部屬單一網頁服務容器,以及安裝特定內容管理系統的功能,但並未如一代規劃開放使用者直接存取 Kubernetes API。對於 Kubernetes 叢集本身,二代系統指出在此基於 Namespace 的多租戶設計下,Kubernetes RBAC 驗證對於限制使用者的行為並不足夠,並且導入 admission controllers 作為加固手段,以 Open Policy Agent 框架透過 webhooks 自行實做 admission controllers 邏輯,同時也以此實做域名使用權管理機制。二代系統因為實做皆以概念驗證的角度撰寫,品質並不符開放使用的標準,導致系計中普遍對系統有安全性疑慮,並未實際上線。
@@ 0,0 1,19 @@
+@materthesis{cskloud,
+ title = {基於 Kubernetes 個別用戶資源管控之 PaaS 平台},
+ author = {周詳},
+ year = 2021,
+ month = {January},
+ % TODO available where?
+ school = {國立交通大學},
+ type = {碩士論文},
+}
+
+@materthesis{pekos,
+ title = {基於 Kubernetes 使用者專案管理之 PaaS 平台},
+ author = {李宗緯},
+ year = 2022,
+ month = {August},
+ % TODO available where?
+ school = {國立陽明交通大學},
+ type = {碩士論文},
+}