我应该如何为Kubernetes重写docker-compose.yaml?
我对K8s非常陌生,所以我从未使用过它。但我已经熟悉了节点/吊舱的概念。我知道minikube是用于调试/etc的本地k8s引擎,我应该通过kubectl工具与任何k8s引擎交互。现在我的问题是:我应该如何为Kubernetes重写docker-compose.yaml?,docker,kubernetes,continuous-deployment,Docker,Kubernetes,Continuous Deployment,我对K8s非常陌生,所以我从未使用过它。但我已经熟悉了节点/吊舱的概念。我知道minikube是用于调试/etc的本地k8s引擎,我应该通过kubectl工具与任何k8s引擎交互。现在我的问题是: 在本地minikube实例和生产AWS/etc实例上启动相同的配置是否可以保证结果相同 如何为我的项目设置连续部署?现在我已经配置了CI,它使用:latest标记将测试代码的图像推送到docker hub。但我希望它们能够在不中断正常运行时间的情况下以滚动更新模式自动部署 如果能通过我应该执行的步骤获
:latest
标记将测试代码的图像推送到docker hub。但我希望它们能够在不中断正常运行时间的情况下以滚动更新模式自动部署简短的回答是肯定的,您可以用K8s复制docker compose的功能
我真的不知道你正在使用的很多技术,比如python,但我可以很容易地将docker compose文件转换为适当的k8s对象。此外,正如你提到的CI/CD一样,我建议看看kustomize(),它可以帮助你使用参数。是的,GitOps应该是部署infra的最佳方式。
version: "3.5"
services:
nginx:
build:
context: .
dockerfile: Dockerfile.nginx
restart: always
command: bash -c "service nginx start && tail -f /dev/null"
ports:
- 80:80
- 443:443
volumes:
- /mnt/wts_new_data_volume/static:/data/django/static
- /mnt/wts_new_data_volume/media:/data/django/media
- ./certs:/etc/letsencrypt/
- ./misc/ssl/server.crt:/etc/ssl/certs/server.crt
- ./misc/ssl/server.key:/etc/ssl/private/server.key
- ./misc/conf/nginx.conf:/etc/nginx/nginx.conf:ro
- ./misc/conf/passports.htaccess:/etc/passports.htaccess:ro
depends_on:
- react
redis:
restart: always
image: redis:latest
privileged: true
command: redis-server
celery:
build:
context: backend
command: bash -c "celery -A project worker -B -l info"
env_file:
- ./misc/.env
depends_on:
- redis
django:
build:
context: backend
command: bash -c "/code/manage.py collectstatic --no-input && echo donecollectstatic && /code/manage.py migrate && bash /code/run/daphne.sh"
volumes:
- /mnt/wts_new_data_volume/static:/data/django/static
- /mnt/wts_new_data_volume/media:/data/django/media
env_file:
- ./misc/.env
depends_on:
- redis
react:
build:
context: frontend
depends_on:
- django