雲端與容器基礎
在 Kubernetes 中,指定 replicas: 3 的 Deployment 有3個 Pod 在執行。以 kubectl delete pod 刪除其中1個 Pod 時發生的事,下列何者正確?
- ADeployment 的設定也會改寫成 replicas: 2,Pod 維持2個繼續執行
- B控制器偵測到實際數量少於指定的3個,並建立1個新的 Pod
- C屬於該 Deployment 的另外2個 Pod 也會被刪除,整個 Deployment 停止
查看答案與解析
正確答案:B. 控制器偵測到實際數量少於指定的3個,並建立1個新的 Pod
在 Kubernetes 中,使用者宣告「執行3個 Pod」這樣的期望狀態,控制器則反覆觀察實際狀態,若有差異就進行操作使其接近宣告(調和,reconcile)。刪除1個 Pod 後實際數量變成2,因此 ReplicaSet 的控制器會建立新的 Pod 回到3個。因節點故障而失去 Pod 時,也會以同樣的機制在其他節點上重新建立 Pod。真正想減少 Pod 數量時,不是刪除 Pod,而是變更 Deployment 的 replicas。
- A. 刪除 Pod 不會改變 Deployment 中宣告的 replicas。會建立 Pod 來補足與宣告的差距。
- B. 正確。控制器會補足宣告狀態與實際狀態之間的差異。
- C. 只有被刪除的 Pod 受影響。只要不刪除 Deployment,其他 Pod 會繼續執行。