雲端與容器基礎

在 Kubernetes 上的 Web 應用程式中,讓 liveness 探測的檢查處理連相依的資料庫能否連線都一併檢查。這個設定可能發生的問題,下列何者最適當?

  1. A資料庫停止時,Pod 會被自動移到資料庫所在的節點,使該節點上其他應用程式的效能下降
  2. B資料庫只是暫時停止,所有 Pod 的容器就會反覆重新啟動,即使資料庫恢復,復原也會延遲
  3. Cliveness 探測失敗時,Pod 只會從 Service 的分配對象中移除,因此不會發生特別的問題
查看答案與解析

正確答案:B. 資料庫只是暫時停止,所有 Pod 的容器就會反覆重新啟動,即使資料庫恢復,復原也會延遲

liveness 探測是在容器本身停止回應(死結等)時,透過重新啟動使其恢復的機制。若連相依對象都檢查,資料庫停止時所有 Pod 的 liveness 探測都會失敗,即使重新啟動也無法解決,容器仍被反覆重新啟動。重新啟動期間無法處理要求,反覆之後到下次重新啟動的等待時間也可能變長,因此資料庫恢復後的復原也會延遲。liveness 探測只檢查行程本身能否回應,相依對象的狀態則視需要以 readiness 探測或應用程式的錯誤處理來應對。

  • A. 探測失敗不會把 Pod 移到其他節點。liveness 探測失敗時,容器會被重新啟動。
  • B. 正確。相依對象的故障會使所有 Pod 反覆重新啟動。
  • C. 從分配對象中移除是 readiness 探測的作用。liveness 探測失敗時,容器會被重新啟動。
練習這個領域 前往領域頁面

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

  1. 在 Kubernetes 的 HorizontalPodAutoscaler 中,把 Pod 的CPU使用率目標設為70%,Pod 數的範圍設為1~10。目前5個 Pod 的平均CPU使用率為30%。以 ⌈目前數量 × 目前使用率 ÷ 目標使用率⌉(⌈ ⌉ 為無條件進位)求所需 Pod 數時,所需的 Pod 數為下列何者?
  2. 在 Pod 的容器做了上面設定的 Deployment 中,有4個 Pod 在執行,每個 Pod 都使用400m(0.4核心)的CPU。HorizontalPodAutoscaler 的CPU使用率目標為60%,所需 Pod 數以 ⌈目前數量 × 目前使用率 ÷ 目標使用率⌉ 求得。所需的 Pod 數為下列何者?
  3. 在 Kubernetes 中,關於為容器設定的資源 requests 與 limits,下列何者正確?
  4. 有一個可分配資源為CPU 4核心、記憶體 8 GiB 的節點。各 Pod 的容器設定了 requests 為CPU 500m、記憶體 1.5 GiB,limits 為CPU 1核心、記憶體 2 GiB。沒有其他 Pod 與系統預留。這個節點最多可放置的 Pod 數為下列何者?
  5. 使用雲端的託管資料庫服務(由業者營運資料庫軟體的服務)。依共同責任模型的想法,一般仍屬於使用者責任的是下列何者?