gpt4 book ai didi

docker - 从本地Docker设置到Kubernetes生产

转载 作者:行者123 更新时间:2023-12-02 21:03:01 26 4
gpt4 key购买 nike

我有一个由四个容器组成的本地Docker设置:flask Web应用程序,MySQL,Redis和RQ worker。

设置与Miguel Grinberg的Flask Mega-Tutorial基本相同。这是他的tutorialcode的链接。

在我的案例中,唯一的区别是,我已替换了他在rq-worker上运行的export blog post函数,而该函数却需要大量计算并且运行时间长(30分钟)。

对我来说,部署此应用程序进行生产的最佳方法是什么?

我只希望一个人或两个人一次访问它,而他们每周只能访问一次或两次。

我一直在研究Kubernetes的示例,但在将它们转换为我的设置并弄清楚如何部署到GCP方面遇到困难。我愿意接受其他部署选项。

这是教程中的docker run命令:
docker run --name redis -d -p 6379:6379 redis:3-alpine

docker run --name mysql -d -e MYSQL_RANDOM_ROOT_PASSWORD=yes \
-e MYSQL_DATABASE=flaskapp -e MYSQL_USER=flaskapp \
-e MYSQL_PASSWORD=mysqlpassword \
mysql/mysql-server:5.7
docker run --name rq-worker -d --rm -e SECRET_KEY=my-secret-key \
-e MAIL_SERVER=smtp.googlemail.com -e MAIL_PORT=587 -e MAIL_USE_TLS=true \
-e MAIL_USERNAME=example@gmail.com -e MAIL_PASSWORD=mysqlpassword \
--link mysql:dbserver --link redis:redis-server \
-e DATABASE_URL=mysql+pymysql://flaskapp:mypassword@dbserver/flaskapp \
-e REDIS_URL=redis://redis-server:6379/0 \
--entrypoint venv/bin/rq \
flaskapp:latest worker -u redis://redis-server:6379/0 dyson-tasks
docker run --name flaskapp -d -p 8000:5000 --rm -e SECRET_KEY=my_secret_key \
-e MAIL_SERVER=smtp.googlemail.com -e MAIL_PORT=587 -e MAIL_USE_TLS=true \
-e MAIL_USERNAME=example@gmail.com -e MAIL_PASSWORD=mypassword \
--link mysql:dbserver --link redis:redis-server \
-e DATABASE_URL=mysql+pymysql://flaskapp:mysqlpassword@dbserver/flaskapp \
-e REDIS_URL=redis://redis-server:6379/0 \
flaskapp:latest

最佳答案

由于您使用Kubernetes和Google Cloud Platform标记了问题,所以我希望这是您想要的方向。

部署到云平台时,请考虑使用支持云的存储/数据库解决方案。单节点MySQL并非开箱即用的云就绪存储。考虑使用例如Google Cloud SQL代替。

您的“ flask Web应用程序”可以完美地作为Deployment部署到Google Kubernetes Engine-但这要求您的应用程序是无状态的,并且必须遵循the twelve-factor app principles

您的Redis也可以部署到Kubernetes,但是您需要考虑可用性需求的重要性。如果您不想考虑这个问题,也可以使用Google托管的Redis,例如Google memorystore-用于Redis的完全托管的内存中数据存储服务。

如果您决定使用完全托管的缓存,则可以使用Google Cloud Run将“ flask Web应用程序”部署为容器-与完整的Kubernetes集群相比,这是一个更具托管性的解决方案,但也受到限制。但是,这里的一个好主意是您只为请求付费。

关于docker - 从本地Docker设置到Kubernetes生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59602285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com