将Django应用程序重新部署到Google Kubernetes Engine(GKS)

问题描述 投票:1回答:2

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

不幸的是,我在部署应用程序时犯了一个错误,集群中的3个pod之一未能出现。我相信我已经修复了失败,现在想要重新部署应用程序。

我无法弄清楚如何做到这一点,或者如果我没有修复错误,那就是为什么它仍然是错误的。我不知道如何判断是否是这种情况......

修复我的Dockerfile后,我重新构建并重新推送到Google Container Registry。它似乎更新了,但我不知道如何跟踪这种部署。

在GKE中推送新版应用程序和回滚的传统模型如何工作?

编辑:我特别关注的问题是我在我的Django应用程序中更新了settings.py但是这个没有传播到我的集群

django kubernetes google-kubernetes-engine
2个回答
3
投票

通常的方法是使用新标记推送新图像,然后在部署(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


0
投票

您可以删除pod以更新应用程序,但这样做只是为了更新应用程序在生产中效果不佳,因为它会在新pod启动时导致停机。

在生产中,您必须触发滚动更新部署,使旧版本保留到位,直到新版本准备就绪,然后切换到新版本。要开始滚动更新部署,您可以使用以下命令:

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

我知道它看起来很糟糕,但到目前为止,有如此多的Kubernetes集群和应用程序,我还没有找到更好的东西。

© www.soinside.com 2019 - 2024. All rights reserved.