【发布时间】:2019-06-27 07:03:04
【问题描述】:
每个微服务都有一个部署配置。这看起来像这样:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
io.kompose.service: service_x
name: service_x
spec:
replicas: 2
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: service_x
spec:
containers:
- env:
- name: FLASK_ENV
value: "production"
image: somewhere/service_x:master_179
name: service_x
ports:
- containerPort: 80
resources: {}
volumeMounts:
- mountPath: /app/service_x/config/deployed
name: volume-service_xproduction
restartPolicy: Always
volumes:
- name: volume-service_xproduction
configMap:
name: service_xproduction
items:
- key: production.py
path: production.py
我们有以下环境 Dev、Stage、Production。如您所见,图像参数包含服务、分支和内部版本号。我有几个想法可以使这种动态化并能够在开发环境中部署例如 service_x:development_190 并在舞台上进行不同的构建。但在我开始 - 也许 - 发明新的轮子之前,我想知道其他人如何解决这个挑战...... 顺便提一句。我们使用 CircleCI 来构建 docker 镜像。
我现在的问题是;在不同环境中部署构建的最佳做法是什么?
- 为每个构建构建 deployment.yml?
- 使用变量/模板?
- 还有其他我不知道的解决方案吗?
- 也许将 kubernetes 文件放在微服务中不是最好的主意?
【问题讨论】:
标签: amazon-web-services kubernetes continuous-deployment circleci amazon-eks