以下是我在 google 上使用 kubernetes 的方式。
我有一个节点应用程序,比方说图书门户.
节点应用程序正在使用配置的环境变量.
Step1:我创建了 docker 文件并推送
gcr.io/<project-id>/book-portal:v1
Step2:使用以下命令部署
kubectl run book-portal --image=gcr.io/<project-id>/book-portal:v1 --port=5555 --env ENV_VAR_KEY1=value1 --env ENV_VAR_KEY2=value2 --env ENV_VAR_KEY3=value3
Step3:
kubectl expose deployment book-portal --type="LoadBalancer"
Step4:获取公共IP
kubectl get services book-portal
现在假设我在下一个版本中添加了新功能和新配置。
所以推出新版本v2
Step1:我创建了 docker 文件并推送
gcr.io/<project-id>/book-portal:v2
Step2:编辑部署
kubectl edit deployment book-portal
---------------yaml---------------
...
spec:
replicas: 1
selector:
matchLabels:
run: book-portal
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
run: book-portal
spec:
containers:
- env:
- name: ENV_VAR_KEY1
value: value1
- name: ENV_VAR_KEY2
value: value2
- name: ENV_VAR_KEY3
value: value3
image: gcr.io/<project-id>/book-portal:v1
imagePullPolicy: IfNotPresent
name: book-portal
...
----------------------------------
我成功地能够改变
image:gcr.io/<project-id>/book-portal:v1
to
image:gcr.io/<project-id>/book-portal:v2
但我无法添加/更改环境变量
- env:
- name: ENV_VAR_KEY1
value: value1
- name: ENV_VAR_KEY2
value: value2
- name: ENV_VAR_KEY3
value: value3
- name: ENV_VAR_KEY4
value: value4
- 任何人都可以指导传递配置的最佳实践吗
在 kubernetes 上的节点应用程序中?
- 我应该如何处理环境变量
滚动更新期间发生变化?