Flask,Google Kubernete Cluster + Docker

时间:2017-11-17 01:43:36

标签: python flask kubernetes google-cloud-platform

我现在有一个问题,我真的不确定发生了什么。在Google Cloud上,我有一个包含两个实例的群集。使用Kubernetes我有2个pod运行,每台机器一个。当我使用持久用户登录应用程序(使用LoadBalancer服务的ExternalIP)时,有时它直接无法执行此操作并重定向到我的主页。其他时候它会登录我。

但是,如果我将我的应用程序缩放到一个VM和一个pod它可以正常工作并且每次都会签名。因此我不认为这是Flask的问题,即我的应用程序,而是其他内容。这就像当我尝试登录我在一台机器上并且当我执行请求时,负载均衡器选择另一台机器并且它未能签到我,然后有时它运气好并且连续两次获得相同的机器。我真的不知道这是不是真的可能,这对我来说就是这样,但是我再次对这一切都很陌生。

https://github.com/tnolan8/CA674-Cloud-Architecture - >这是包含我的应用程序+我的部署脚本的repo。

这是我的实际部署脚本:deployment.yml

我对实际可能造成这种情况的原因感到茫然。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

<强> TL; DR 您似乎正在使用sqlalchemy存储您的数据库&#39;陈述 磁盘。

您应该创建数据库部署并更改配置以使用该数据库。

<强>详细信息:

  1. 当您使用要扩展和缩放的容器时,您不应该使用该磁盘,因为不同的容器将具有不同的状态(container1认为您已经登录,container2认为您&# 39;不是因为它的磁盘没有那个数据)
  2. 容器应具有频繁重启的弹性。这意味着您不应该在重新启动后将任何内容存储在磁盘上。如果您真的需要,您应该查看persistent volumes您的容器。但是,当您需要更改容器经常使用的副本数量时,需要谨慎使用PV。