Pod 是 Kubernetes 中最小的運行單位,它可以包含一個或多個 container。Pod 的實現原理主要涉及以下幾個方面:
- 容器技術 : 實現隔離和獨立運行
- 共享網絡和存儲 : Pod 中的所有容器共享相同的網絡和存儲空間
- Pod 調度 : 調度器會監測節點的資源利用率,將 Pod 調度到適合的節點上運行。
- 生命週期管理 : 當 Pod 發生故障或需要擴展時,控制器會自動創建、刪除或調整 Pod 的數量。
在 Kubernetes 中,Pod 是容器組的概念,爲應用程序提供了一個更加靈活的運行環境,負責管理容器的生命周期和資源。
Kubernetes Secret 是一種將配置設置與應用分離的抽象,解決服務間配置的冗余與維護問題。主要可以用來保存敏感訊息,將這些 data 放在 Secret 中,比放在 Pod 的定義中或者 Docker Image中,來說更加安全和靈活。
ConfigMap 是一種資源配置管理的抽象,可讓不同的微服務間共享配置,提供了一種將配置設置與應用分離的方法,讓我們可以只更新 Config 設定檔 ,而無需修改應用的 Code 或其 Image ,解決服務間配置的冗余與維護問題。基礎的 ConfigMap 用法,通常用於存儲鍵值對,來作爲容器化應用中的環境變量。
Reservoir sampling 是一個隨機演算法,其目的是在只遍歷一遍的情況下,從大數據 N 的資料流中,隨機選取出 k 個元素,且每筆資料選中的機率都要一樣。這個場景強調了幾件事:
- 集合 N 很大且不可知,所以不能一次存入記憶體
- 時間複雜度為
O(N)
- 隨機選取 k 個數,每個數被選中的機率為
k/N
本來面對這種問題,比較直接的想法是利用隨機數演算法,求 random(N) 得到隨機數,但是因資料流極大,無法一次都讀到記憶體內,這就表示不能像數組一樣根據 index 獲取元素;而且題目強調只能遍歷一遍
O(N)
,代表也不能再採用分塊方式儲存資料,之後再隨機遍歷。為了解決這個問題,可以使用 Reservoir sampling ,非常的巧妙。
是經典的 78. Subsets 的進階版,現在數字會有重複(duplicate)。這邊使用 Backtrack 模板來求解。這個題目還有要注意的地方,就是 array 不一定是順序的,例如 test case:
[4,4,4,1,4]
,這範例在我們去除重複答案的時候,若沒注意到有亂序的可能性,高機率會出錯。
很經典的問題 : 冪集 the power set ,在數學上還蠻常見到的,理論上求得解答方式也很簡單,選或者不選排列組合,就可以得出答案。但在程式上要實現卻有一點點難度,故會被歸類到 Medium 等級。這邊使用 Backtrack 模板來解題。