簡體   English   中英

kubectl - 如何重新啟動部署(或所有部署)

[英]kubectl - How to restart a deployment (or all deployment)

我們有一個 AKS 集群,有時我們最終會遇到部署需要重新啟動的問題(例如,緩存數據已更新,我們想要刷新它,或者我們想要刷新的緩存數據已損壞)。

我一直在使用將部署擴展到 0 的方法,然后使用以下命令將其擴展回來:

kubectl scale deployments/<deploymentName> --replicas=0
kubectl scale deployments/<deploymentName> --replicas=1

這符合我的預期,但感覺很糟糕,這意味着在此過程發生時我們沒有運行任何部署。

這樣做的更好方法是什么? 對於特定部署和所有部署?

如果您的部署有RollingUpdate策略,您可以刪除 pod 以替換 pod 並刷新它。

關於滾動更新策略:

用戶希望應用程序始終可用,而開發人員則希望每天多次部署它們的新版本。 在 Kubernetes 中,這是通過滾動更新完成的。 滾動更新通過使用新的 Pod 實例增量更新,允許部署的更新在零停機時間的情況下進行。

滾動更新配置:

spec:
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate

maxSurge指定在maxSurge數量上可以創建的最大maxSurge數量。

maxUnavailable指定更新過程中可以不可用的最大maxUnavailable數。

刪除豆莢:

kubectl delete pod <pod-name>

編輯:

此外,您可以推出部署,這將重新啟動 pod,但也會創建部署的新版本。

例如: kubectl rollout restart deployments/<deployment-name>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM