M Sections/2.Backgrounds.tex => Sections/2.Backgrounds.tex +7 -7
@@ 31,7 31,7 @@ Kubernetes 提供 RESTful API 做為主要控制手段,以 resources 代表操
\begin{figure}[htb]
\centering
- \includegraphics{assets/kubernetes-resources.png}
+ \includegraphics[scale=1.2]{assets/kubernetes-resources.png}
\caption{Kubernetes resources 架構示意圖}
\end{figure}
@@ 43,36 43,36 @@ Kubernetes 提供多個身份驗證手段,可搭配混合使用,在設計上
\begin{figure}[htb]
\centering
- \begin{subfigure}{0.31\textwidth}
+ \begin{subfigure}{0.32\textwidth}
\centering
\includegraphics[width=\textwidth]{assets/authn-x509.png}
\caption{X.509 憑證}
\end{subfigure}
~
- \begin{subfigure}{0.31\textwidth}
+ \begin{subfigure}{0.32\textwidth}
\centering
\includegraphics[width=\textwidth]{assets/authn-proxy.png}
\caption{Authenticating proxy}
\end{subfigure}
~
- \begin{subfigure}{0.31\textwidth}
+ \begin{subfigure}{0.32\textwidth}
\centering
\includegraphics[width=\textwidth]{assets/authn-static-tokens.png}
\caption{Static tokens}
\end{subfigure}
- \begin{subfigure}{0.31\textwidth}
+ \begin{subfigure}{0.32\textwidth}
\centering
\includegraphics[width=\textwidth]{assets/authn-webhook-tokens.png}
\caption{Webhook tokens}
\end{subfigure}
~
- \begin{subfigure}{0.31\textwidth}
+ \begin{subfigure}{0.32\textwidth}
\centering
\includegraphics[width=\textwidth]{assets/authn-sa-tokens.png}
\caption{ServiceAccount tokens}
\end{subfigure}
~
- \begin{subfigure}{0.31\textwidth}
+ \begin{subfigure}{0.32\textwidth}
\centering
\vspace{1em}
\includegraphics[width=\textwidth]{assets/authn-oidc-tokens.png}
M Sections/4.Architecture.tex => Sections/4.Architecture.tex +2 -2
@@ 161,13 161,13 @@ ResourceQuota 所能管控的資源大致有兩種:運算資源以及 resource
\begin{figure}[htb]
\centering
- \includegraphics{assets/kubernetes-watch.png}
+ \includegraphics[scale=1.11]{assets/kubernetes-watch.png}
\caption{Kubernetes watch 機制示意圖}
\end{figure}
對於 Kubernetes API 的操作,我們採用由 Kubernetes 提供的 OpenAPI\footnote{OpenAPI: 一種用於描述 RESTful API 行為的框架。}\cite{openapi} 定義檔,透過 openapi-generator\footnote{openapi-generator: 由 OpenAPI 定義檔產生適用於各種不同語言的函式庫的工具。} 自動產生的函式庫輔助開發。在網頁的各個功能,我們皆有採用 Kubernetes 的 watch 機制達到資料的即時更新。Kubernetes 的 watch 是一個特有的 HTTP API 呼叫方法,透過維持長期不中斷的 HTTP response,藉由 HTTP 的 chunked encoding\footnote{Chunked encoding: 一個將內容分塊傳送的 HTTP 編碼機制,常用於串流等持續產生資料的場合\cite{swaminathan2011low}。} 編碼,即時的將一個 resources 列表的內容更新以新增、移除、修改 resource 等事件傳出,並且每個事件帶有一個版本號,如果 HTTP 通訊意外中止,客戶端可以透過這個版本號代表目前對 resources 列表的認知,向 Kubernetes 重發一個 watch 呼叫獲取由該版本後的變更。這個機制也廣泛運用在 Kubernetes 元件內部的溝通。
-\begin{figure}[htb]
+\begin{figure}[hbt]
\centering
\includegraphics[scale=0.15]{assets/web-navigation.png}
\caption{CSKloud v3 網頁界面導覽設計}
M assets/authn-proxy.png => assets/authn-proxy.png +0 -0
M assets/kubernetes-watch.png => assets/kubernetes-watch.png +0 -0