雲端與容器基礎

在 Kubernetes 的 Deployment 中,把 Pod 範本中的容器映像檔改成新版本。在預設的更新方式(RollingUpdate)下發生的事,下列何者正確?

  1. A建立新的 ReplicaSet,一邊增加新版本的 Pod 一邊減少舊版本的 Pod。舊的 ReplicaSet 以 Pod 數為0的狀態保留,供回復使用
  2. B在不重新建立 Pod 的情況下,就地把執行中 Pod 內的容器映像檔換成新版本,因此 Pod 的IP位址與名稱都不會改變
  3. C先同時刪除所有舊版本的 Pod,再一起建立新版本的 Pod,因此更新期間服務會暫時停止
查看答案與解析

正確答案:A. 建立新的 ReplicaSet,一邊增加新版本的 Pod 一邊減少舊版本的 Pod。舊的 ReplicaSet 以 Pod 數為0的狀態保留,供回復使用

Pod 範本改變時,Deployment 會為新範本建立 ReplicaSet,一邊確認新的 Pod 已準備就緒,一邊逐步減少舊 ReplicaSet 的 Pod。因此在更新期間,也有一定數量的 Pod 持續處理要求。舊的 ReplicaSet 會以 Pod 數為0的狀態保留,所以可用 kubectl rollout undo 回到前一版。先刪除全部 Pod 再重新建立的方式是 Recreate,只在明確指定時使用。

  • A. 正確。一邊切換 ReplicaSet,一邊逐步替換 Pod。
  • B. 不會就地替換 Pod 內的容器映像檔。會建立新的 Pod,IP位址也會改變。
  • C. 這是 Recreate 方式的動作。預設的 RollingUpdate 會逐步替換 Pod。
練習這個領域 前往領域頁面

雲端與容器基礎的其他題目

  1. 在 replicas: 10 的 Deployment 中,把滾動更新的設定設為 maxSurge: 25%、maxUnavailable: 25%。更新途中 Pod 總數的上限與可用 Pod 數的下限,其組合下列何者正確?
  2. 在 Kubernetes 中,Pod 每次重新建立時IP位址都會改變。讓其他應用程式能以不變的名稱與位址,連線到以標籤選出的多個 Pod 並分散負載的資源,是下列何者?
  3. 在 Kubernetes 叢集中,希望把到達同一個主機名稱的 HTTPS 要求中,路徑以 /api 開頭的分配給 api 的 Service,其他的分配給 web 的 Service。適合用來訂定這個分配規則的資源是下列何者?
  4. 把資料庫的密碼存放在 Kubernetes 的 Secret 中。關於 Secret 的說明,下列何者正確?
  5. 某個 Web 應用程式在啟動後到讀取完快取的約60秒內無法處理要求,這段期間對 /ready 回傳503。在 Pod 的容器加上上面的設定時,其效果下列何者正確?