~xdavidwu/cskloudv3-thesis

925c1f3288fd346062ac96f8b7036c837644ba6d — Pinghao Wu 3 months ago cde04e1
Architecture: AlwaysPullImages
1 files changed, 6 insertions(+), 0 deletions(-)

M Sections/4.Architecture.tex
M Sections/4.Architecture.tex => Sections/4.Architecture.tex +6 -0
@@ 73,6 73,12 @@ CSKloud 達成一代願景中的開放使用者直接存取 Kubernetes API,使

為了避免一般使用者濫用這個機制,我們採用 PodTolerationRestriction 來限制使用者能填寫的 tolerations。PodTolerationRestriction 可以針對 Namespace 設定其中 Pods 可使用的 tolerations 白名單,我們將其限制為只允許系統內部會預設填入的項目。

\subsection{AlwaysPullImages}

在 Kubernetes 下,容器 images 的下載策略(\verb|imagePullPolicy| 欄位)有三種:\verb|Always|、\verb|IfNotPresent| 與 \verb|Never|。\verb|Always| 在啟動容器之前總是會檢查容器的 image 的更新,若有更新即重新下載;\verb|IfNotPresent| 是當節點上尚未有該 image 時才會下載;\verb|Never| 則是不主動下載,仰賴節點上的存放狀況。在容器結束執行後,Kubernetes 並不會主動刪除 image 資料,而是只有在儲存空間有壓力時才會刪除,藉此減少下載 image 的負擔。

在容器生態下,images 主要可分為公開存取以及私人的兩種。下載公開存取的 images 不須經過身份驗證,而私人的 images 則是需要。由於 \verb|IfNotPresent| 與 \verb|Never| 在節點已經存有指定 image 時,不會進行任何更新檢查,因此也不需進行身份驗證,如此在共用叢集的狀況下,便形成了一個可能用來存取他人遺留在節點上的私人 images 的途徑。對此,我們採用 AlwaysPullImages 將下載策略一律複寫為 \verb|Always|。

\section{權限開通實做}

\section{網頁界面實做}