~xdavidwu/cskloudv3-thesis

5675b1d475eee6c893d29f2cd80f4d5eb501084c — Pinghao Wu 6 months ago cd6518a
Architecture: design requirements
1 files changed, 20 insertions(+), 1 deletions(-)

M Sections/4.Architecture.tex
M Sections/4.Architecture.tex => Sections/4.Architecture.tex +20 -1
@@ 1,4 1,23 @@
\chapter{系統設計}
\chapter{設計方法與實做}
\label{ch:architecture}

本章節敘述本研究基於 CScloud 改良所產生的 CSKloud V3 架構。

\section{設計需求}

本研究目標設想的 Kubernetes-as-a-Service 可以藉由 CScloud 的想法衍生改良,保留其共用叢集、基於 Kubernetes namespace 的多租戶設計以及透過串接既有單一登入服務簡化身份驗證實做的特色,重新設計架構並著重於改善下列兩點:

\begin{itemize}
    \item \textbf{安全性}:改善對於系統元件的切分以及實做方法
    \item \textbf{通用性}:跳脫 PaaS 的設計框架、充分發揮 Kubernetes 的潛力
\end{itemize}

\subsection{安全性}

二代架構設計將需要高權限、低使用量的使用者開通元件以及低權限、高使用量的使用者互動界面實做為單一一個單體式網頁服務,不同權限層級的操作間欠缺隔離手段。另外在實做上也欠缺資訊安全意識,其根據使用者操作在伺服器端呼叫 Helm CLI 的方式也容易產生漏洞。完全仰賴自行定義的 admission controllers 邏輯進行 Kubernetes 叢集本身的加固,由於 Kubernetes API 的複雜性,也容易由於未充分理解而有所缺失。

以系計中在運作方面上的特色而言,由於主力開發人力來自於碩士班研究生以及部份學士班的打工,人員更迭極為快速,並且提供的服務眾多,難以分配專屬人力,一人經常身兼多職維護多個產品,歷史上僅有少數人能夠深入了解既有服務實做細節。面對這樣的場景,以及考量到本平台的重要性,由初步規劃即必須嚴謹考量資訊安全,從架構起手進行防禦,以免在日後他人迭代維護時產生紕漏。

\subsection{通用性}

二代並沒有達成一代對於開放直接使用 Kubernetes API 的想法,欠缺通用性,在網頁控制界面的實做亦是以新的 PaaS 平台角度出發,Kubernetes 僅只屬於達成平台的手段,這樣的實做脈絡容易侷限於自身的使用經驗,而忽略其他潛在的需求。Kubernetes 本身經過時間的洗禮,已發展為高度彈性且經過廣泛採用歷練的服務部屬框架,應由直接利用 Kubernetes 的角度設計,即可低成本的達成高通用性。