From 353878798c94b77d216688bf2aa2bb8fda0e82b7 Mon Sep 17 00:00:00 2001 From: Pinghao Wu Date: Tue, 10 Sep 2024 16:57:22 +0800 Subject: [PATCH] RelatedWorks: brief intro to cscloud history --- Sections/3.RelatedWorks.tex | 8 ++++++++ ref.bib | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/Sections/3.RelatedWorks.tex b/Sections/3.RelatedWorks.tex index 9956b8c..d14f6a5 100644 --- a/Sections/3.RelatedWorks.tex +++ b/Sections/3.RelatedWorks.tex @@ -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 邏輯,同時也以此實做域名使用權管理機制。二代系統因為實做皆以概念驗證的角度撰寫,品質並不符開放使用的標準,導致系計中普遍對系統有安全性疑慮,並未實際上線。 diff --git a/ref.bib b/ref.bib index e69de29..78222ff 100644 --- a/ref.bib +++ b/ref.bib @@ -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 = {碩士論文}, +} -- 2.45.2