![](/img/trans.png)
[英]How can I upgrade openshift origin if it is run as a docker container?
[英]How I can upgrade an new version of container in Openshift/Kubernetes
我有一個openshift集群。 我存儲在gitlab注冊表中的Docker映像我有一個問題,當我在存儲庫中有新映像時,如何在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可以自動升級? 以及如何從網絡上做到這一點?
對於自動更新,可以將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
您可以通過kubectl訪問k8s集群嗎? 如果是,則可以為您的部署設置新映像並執行滾動更新:
kubectl set image deployment/ds-hub ds-hub=selenium/hub:3.7
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.