从本地Docker设置到Kubernetes生产

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

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

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

在我的案例中,唯一的区别是,我已将他的导出博客帖子功能替换为rq-worker上运行的功能,而该功能却需要大量的计算并且可以长时间运行(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 [email protected] -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 [email protected] -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 

我有一个由四个容器组成的本地Docker设置:flask Web应用程序,MySQL,Redis和RQ worker。设置基本上与Miguel Grinberg的Flask Mega-Tutorial相同。这是链接...

docker flask kubernetes google-cloud-platform production-environment
1个回答
0
投票

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

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