簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM