簡體   English   中英

將Django應用程序重新部署到Google Kubernetes Engine(GKS)

[英]Re-deploying a Django application to Google Kubernetes Engine (GKS)

我按照本教程: https : //cloud.google.com/python/django/kubernetes-engine介紹了如何將Django應用程序部署到GKE。

不幸的是,我在部署應用程序時犯了一個錯誤,集群中的3個pod之一未能出現。 我相信我已經修復了失敗,現在想要重新部署應用程序。

我無法弄清楚如何做到這一點,或者如果我沒有修復錯誤,那就是為什么它仍然是錯誤的。 我不知道如何判斷是否是這種情況......

修復我的Dockerfile后,我重新構建並重新推送到Google Container Registry。 它似乎更新了,但我不知道如何跟蹤這種部署。

在GKE中推送新版應用程序和回滾的傳統模型如何工作?

編輯:我特別關注的問題是我在我的Django應用程序中更新了settings.py但是這個沒有傳播到我的集群

通常的方法是使用新標簽推送新圖像,然后在部署中編輯容器圖像標簽( https://github.com/GoogleCloudPlatform/python-docs-samples/blob/78d8a59d59c5eca788495666b43283534a50b7ee/container_engine/django_tutorial/polls .yaml#L42 ),然后重新應用該文件( kubectl apply -f polls.yml )。 但是因為他們的示例沒有使用圖像標記(讀取:隱式使用latest的標記),所以您只需要刪除現有的pod並強制所有三個重新啟動。 一個快速的方法是kubectl delete pod -n app=polls

您可以刪除pod以更新應用程序,但這樣做只是為了更新應用程序在生產中效果不佳,因為它會在新pod啟動時導致停機。

在生產中,您必須觸發滾動更新部署,使舊版本保留到位,直到新版本准備就緒,然后切換到新版本。 要開始滾動更新部署,您可以使用以下命令:

kubectl -n NS patch deploy DEPLOYMENT_NAME -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"

我知道它看起來很糟糕,但到目前為止,有如此多的Kubernetes集群和應用程序,我還沒有找到更好的東西。

暫無
暫無

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

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