我如何在 Openshift/Kubernetes 中升级新版本的容器
How I can upgrade an new version of container in Openshift/Kubernetes
我有一个 openshift 集群。
Docker 我存储在 gitlab 注册表中的图像
我有一个问题,当我的存储库中有一个新图像时,我如何在 openshift 中升级我的应用程序?
例如我部署了一个版本为 3.6 的 selenium hub :
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -f docker-compose-debug.yml
kompose.version: 1.6.0 (e4adfef)
creationTimestamp: null
labels:
io.kompose.service: ds-hub
name: ds-hub
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: ds-hub
spec:
containers:
- env:
- name: GRID_CLEAN_UP_CYCLE
value: "10000"
- name: GRID_MAX_SESSION
value: "10"
- name: GRID_TIMEOUT
value: "150"
image: selenium/hub:3.6
name: ds-hub
ports:
- containerPort: 4444
resources: {}
stdin: true
tty: true
restartPolicy: Always
status: {}
现在我想部署一个新版本,例如 3.7
我知道的唯一方法是更改 yaml 文件:
来自
image: selenium/hub:3.6
至
image: selenium/hub:3.7
并在控制台中用新版本替换 yaml 文件:
oc replace -f <yml_file_describing_pod>
也许这样做是更好的解决方案?或者 pod 可以自动升级?我如何从网络上做到这一点?
您可以通过 kubectl 访问您的 k8s 集群吗?如果是,您可以为部署设置新映像并执行滚动更新:
kubectl set image deployment/ds-hub ds-hub=selenium/hub:3.7
对于自动更新,您可以将 ImageChange-trigger 添加到您的 Deployment-Config 并使用 selenium/hub:latest 作为 ImageStreamTag-name。
triggers:
- type: ImageChange
imageChangeParams:
automatic: true
from:
kind: ImageStreamTag
name: selenium/hub:latest
containerNames:
- ds-hub
我有一个 openshift 集群。 Docker 我存储在 gitlab 注册表中的图像 我有一个问题,当我的存储库中有一个新图像时,我如何在 openshift 中升级我的应用程序?
例如我部署了一个版本为 3.6 的 selenium hub :
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -f docker-compose-debug.yml
kompose.version: 1.6.0 (e4adfef)
creationTimestamp: null
labels:
io.kompose.service: ds-hub
name: ds-hub
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: ds-hub
spec:
containers:
- env:
- name: GRID_CLEAN_UP_CYCLE
value: "10000"
- name: GRID_MAX_SESSION
value: "10"
- name: GRID_TIMEOUT
value: "150"
image: selenium/hub:3.6
name: ds-hub
ports:
- containerPort: 4444
resources: {}
stdin: true
tty: true
restartPolicy: Always
status: {}
现在我想部署一个新版本,例如 3.7
我知道的唯一方法是更改 yaml 文件:
来自
image: selenium/hub:3.6
至
image: selenium/hub:3.7
并在控制台中用新版本替换 yaml 文件:
oc replace -f <yml_file_describing_pod>
也许这样做是更好的解决方案?或者 pod 可以自动升级?我如何从网络上做到这一点?
您可以通过 kubectl 访问您的 k8s 集群吗?如果是,您可以为部署设置新映像并执行滚动更新:
kubectl set image deployment/ds-hub ds-hub=selenium/hub:3.7
对于自动更新,您可以将 ImageChange-trigger 添加到您的 Deployment-Config 并使用 selenium/hub:latest 作为 ImageStreamTag-name。
triggers:
- type: ImageChange
imageChangeParams:
automatic: true
from:
kind: ImageStreamTag
name: selenium/hub:latest
containerNames:
- ds-hub