什麼是Kubernetes
在由許多機器(節點)組成的叢集上,配置容器、維持數量、進行更新並提供連線目標的編排平台。使用者以 Deployment、Service 等資源宣告「期望狀態」,控制器觀察實際狀態並使其接近宣告(調和)。最小單位是 Pod,Pod 消失時會自動重新建立,也支援滾動更新與依負載的自動擴展。也簡寫為 K8s。
日文名稱: Kubernetes
「Kubernetes」出現在1領域的10道練習題中(雲端與容器基礎等)。
這個名詞所屬的領域: 雲端與容器基礎
在由許多機器(節點)組成的叢集上,配置容器、維持數量、進行更新並提供連線目標的編排平台。使用者以 Deployment、Service 等資源宣告「期望狀態」,控制器觀察實際狀態並使其接近宣告(調和)。最小單位是 Pod,Pod 消失時會自動重新建立,也支援滾動更新與依負載的自動擴展。也簡寫為 K8s。
日文名稱: Kubernetes
「Kubernetes」出現在1領域的10道練習題中(雲端與容器基礎等)。
這個名詞所屬的領域: 雲端與容器基礎
Pod 是組合容器的最小單位,ReplicaSet 維持 Pod 的數量,Deployment 則利用它進行版本更新與回復。Service 為多個 Pod 提供穩定的名稱與位址,Ingress 依路徑或主機名稱把來自叢集外的 HTTP 要求分配給 Service。ConfigMap 與 Secret 把設定與機密值與映像檔分開傳入,namespace 則依團隊或環境劃分叢集。
使用者以 YAML 等宣告「執行3個這個版本的 Pod」之類的狀態,並登錄到 Kubernetes。控制器反覆確認實際狀態,Pod 消失就建立,數量過多就減少。由於宣告的是結果而非步驟,同一個定義套用幾次都會收斂到相同狀態,也能自動從節點故障中恢復。
容器要指定希望預留的CPU與記憶體量(requests)與上限(limits),排程器依 requests 選擇放置 Pod 的節點。readiness 探測檢查能否接受要求並控制分配,liveness 探測讓停止回應的容器重新啟動。HorizontalPodAutoscaler 依相對於 requests 的使用率等指標增減 Pod 的數量。
正確答案:C. Pod
Pod 是 Kubernetes 配置並執行的最小單位,其中的容器共用網路命名空間,因此可以彼此透過 localhost 通訊,也能使用同一個磁碟區。多數情況是1個 Pod 放1個應用程式容器,有時也會在同一個 Pod 加入轉送日誌等輔助容器。Pod 是用完即丟的,重新建立時IP位址也會改變,所以通常透過 Deployment 等間接管理。節點是執行 Pod 的機器,Service 則是通往多個 Pod 的穩定連線目標。
正確答案:B. 控制器偵測到實際數量少於指定的3個,並建立1個新的 Pod
在 Kubernetes 中,使用者宣告「執行3個 Pod」這樣的期望狀態,控制器則反覆觀察實際狀態,若有差異就進行操作使其接近宣告(調和,reconcile)。刪除1個 Pod 後實際數量變成2,因此 ReplicaSet 的控制器會建立新的 Pod 回到3個。因節點故障而失去 Pod 時,也會以同樣的機制在其他節點上重新建立 Pod。真正想減少 Pod 數量時,不是刪除 Pod,而是變更 Deployment 的 replicas。
Docker 主要是在1台機器上建置映像檔並執行容器的工具。Kubernetes 則是跨越許多機器,管理在哪個節點執行、執行幾個、如何更新的平台。Kubernetes 使用以 Docker 等建置的標準格式映像檔來執行容器。
不一定。Kubernetes 在高可用性、自動恢復與管理大量服務上有優勢,但營運叢集需要知識與心力。規模小時,在1台機器上執行容器,或使用雲端的託管容器執行服務,可能更合適。
Pod 是 Kubernetes 配置並執行的最小單位,其中的容器共用網路命名空間,因此可以彼此透過 localhost 通訊,也能使用同一個磁碟區。
在 Kubernetes 中,作為部署與管理的最小單位,把1個以上的容器組合在一起並讓它們共用同一IP位址與磁碟區的是…在 Kubernetes 中,使用者宣告「執行3個 Pod」這樣的期望狀態,控制器則反覆觀察實際狀態,若有差異就進行操作使其接近宣告(調和,reconcile)。
在 Kubernetes 中,指定 replicas: 3 的 Deployment 有3個 Pod 在執行。以 ku…密碼等機密值,要透過 Kubernetes 的 Secret 等機制,限縮可讀取的人再傳入。
如上所示,不把資料庫的連線目標寫進映像檔,而是在啟動容器時以環境變數傳入。這個設計的主要優點,下列何者最適當?Pod 環境變數 容器映像檔 DNS(網域名稱系統) HTTP(超文字傳輸協定) TLS 反向代理 死結(Deadlock) 不可變基礎設施 可用區域