简体   繁体   English

如何在Openshift / Kubernetes中升级容器的新版本

[英]How I can upgrade an new version of container in Openshift/Kubernetes

I have an openshift cluster. 我有一个openshift集群。 Docker images I store in a gitlab registry And I have a question, when I have a new image on my repo, how can I upgrade an my application in openshift? 我存储在gitlab注册表中的Docker映像我有一个问题,当我在存储库中有新映像时,如何在openshift中升级应用程序?

for example I have a deployed selenium hub with version 3.6 : 例如,我已经部署了一个版本为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: {}

and now I want to deploy a new version for example 3.7 现在我想部署一个新版本,例如3.7

The only way I know, to do it - is to change in yaml file: 我知道的唯一方法是-更改yaml文件:

from

image: selenium/hub:3.6

to

image: selenium/hub:3.7

and in console replace yaml file with new version: 并在控制台中用新版本替换yaml文件:

oc replace -f <yml_file_describing_pod>

Maybe is it a better solution to do this? 也许这样做是更好的解决方案? Or maybe pod can upgrade automatically? 也许Pod可以自动升级? And how I can do this from web? 以及如何从网络上做到这一点?

For an automatic update, you can add an ImageChange-trigger to your Deployment-Config and use selenium/hub:latest as ImageStreamTag-name. 对于自动更新,可以将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

Do you have access to your k8s cluster via kubectl? 您可以通过kubectl访问k8s集群吗? If yes, you can set the new image for your deployment and perform a rolling update: 如果是,则可以为您的部署设置新映像并执行滚动更新:

kubectl set image deployment/ds-hub ds-hub=selenium/hub:3.7

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如果将openshift原点作为docker容器运行,如何升级? - How can I upgrade openshift origin if it is run as a docker container? 如何使用Terraform在Kubernetes上的容器中推出新版本的容器? - How do I roll out a new version of a container in a pod on Kubernetes using Terraform? 如何将Openshift Origin Docker升级到最新版本? - How to upgrade Openshift Origin Docker to latest version? 如何让容器在 Kubernetes 上运行? - How can I keep a container running on Kubernetes? 如何通过命令行将参数传递给 Kubernetes 或 OpenShift 中的 Docker 容器? - How to pass arguments to Docker container in Kubernetes or OpenShift through command line? 如何在kubernetes / openshift的init容器args中使用环境变量? - How to use environment variables in init container args in kubernetes/openshift? 如何将 kubernetes/openshift 机密复制到初始化容器作业的卷中? - How to copy kubernetes/openshift secrets into a volume for init container job? 如何在Docker容器中升级Nginx版本 - How to upgrade nginx version in docker container 如何在 Webdriver Container 中升级 chrome 版本 - How to upgrade chrome version in Webdriver Container 如何从openshift上的docker容器内启动一个新的docker容器 - How to launch a new docker container from inside a docker container on openshift
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM