9.4. 使用 CLI 更新集群

如果有可用更新,您可以使用OpenShift CLI (oc)更新集群。

您可以在客户门户网站的勘误部分找到有关可用 OpenShift Container Platform 公告和更新的信息。

先决条件

  • 安装与更新版本的版本匹配的 OpenShift CLI(oc)。
  • 使用具有 cluster-admin 权限的用户登陆到集群。
  • 暂停所有 MachineHealthCheck 资源。

流程

  1. 查看可用更新,记录下要应用的更新的版本号:

    $ oc adm upgrade

    输出示例

    Cluster version is 4.9.23
    
    Upstream is unset, so the cluster will use an appropriate default.
    Channel: stable-4.9 (available channels: candidate-4.10, candidate-4.9, fast-4.10, fast-4.9, stable-4.10, stable-4.9, eus-4.10)
    
    Recommended updates:
    
    VERSION IMAGE
    4.9.24  quay.io/openshift-release-dev/ocp-release@sha256:6a899c54dda6b844bb12a247e324a0f6cde367e880b73ba110c056df6d018032
    4.9.25  quay.io/openshift-release-dev/ocp-release@sha256:2eafde815e543b92f70839972f585cc52aa7c37aa72d5f3c8bc886b0fd45707a
    4.9.26  quay.io/openshift-release-dev/ocp-release@sha256:3ccd09dd08c303f27a543351f787d09b83979cd31cf0b4c6ff56cd68814ef6c8
    4.9.27  quay.io/openshift-release-dev/ocp-release@sha256:1c7db78eec0cf05df2cead44f69c0e4b2c3234d5635c88a41e1b922c3bedae16
    4.9.28  quay.io/openshift-release-dev/ocp-release@sha256:4084d94969b186e20189649b5affba7da59f7d1943e4e5bc7ef78b981eafb7a8
    4.9.29  quay.io/openshift-release-dev/ocp-release@sha256:b04ca01d116f0134a102a57f86c67e5b1a3b5da1c4a580af91d521b8fa0aa6ec
    4.9.31  quay.io/openshift-release-dev/ocp-release@sha256:2a28b8ebb53d67dd80594421c39e36d9896b1e65cb54af81fbb86ea9ac3bf2d7
    4.9.32  quay.io/openshift-release-dev/ocp-release@sha256:ecdb6d0df547b857eaf0edb5574ddd64ca6d9aff1fa61fd1ac6fb641203bedfa

    注意

    有关如何执行 EUS 到 EUS 频道升级的详情,请参阅附加资源部分中列出的 准备执行 EUS 升级 页面。

  2. 根据您的机构要求,设置适当的升级频道。例如,您可以将频道设置为 stable-4.10fast-4.10eus-4.10。有关频道的更多信息,请参阅在额外资源项中的了解更新频道和发行版本

    $ oc adm upgrade channel <channel>

    例如,要将频道设置为 stable-4.10

    $ oc adm upgrade channel stable-4.10
    重要

    对于生产环境中的集群,您必须订阅一个 stable-*eus-*fast-* 频道。

    注意

    当您准备好升级到下一个次版本时,请选择与该次版本对应的频道。声明更新频道后,集群可以更方便地为您的目标版本更新路径。集群可能需要一些时间来评估所有可用的更新,并提供最佳更新建议。更新建议可能会随时间变化,因为它们基于哪些更新选项。

    如果您无法看到到目标次版本的更新路径,请保持将集群更新至当前版本的最新补丁版本,直到下一个次版本在路径中可用。

  3. 应用更新:

    • 要更新到最新版本:

      $ oc adm upgrade --to-latest=true 1
    • 要更新到一个特定版本:

      $ oc adm upgrade --to=<version> 1
      1 1
      <version> 是从 oc adm upgrade 命令的输出中获取的更新版本。
  4. 查看 Cluster Version Operator 的状态:

    $ oc adm upgrade
  5. 更新完成后,可以通过以下方法确认集群已更新为新版本:

    $ oc get clusterversion

    输出示例

    Cluster version is <version>
    
    Upstream is unset, so the cluster will use an appropriate default.
    Channel: stable-4.10 (available channels: candidate-4.10, candidate-4.11, eus-4.10, fast-4.10, fast-4.11, stable-4.10)
    
    No updates available. You may force an upgrade to a specific release image, but doing so might not be supported and might result in downtime or data loss.

    注意

    如果 oc get clusterversion 命令在 PROGRESSING 状态为 True 时显示以下错误,您可以忽略这个错误。

    NAME    VERSION AVAILABLE PROGRESSING SINCE STATUS
    version 4.10.26 True      True        24m   Unable to apply 4.11.0-rc.7: an unknown error has occurred: MultipleErrors
  6. 如果您要将集群升级到下一个次版本,如 X.y 升级到 X. (y+1),建议在部署依赖新功能的工作负载前确认您的节点已升级:

    $ oc get nodes

    输出示例

    NAME                           STATUS   ROLES    AGE   VERSION
    ip-10-0-168-251.ec2.internal   Ready    master   82m   v1.23.12+8a6bfe4
    ip-10-0-170-223.ec2.internal   Ready    master   82m   v1.23.12+8a6bfe4
    ip-10-0-179-95.ec2.internal    Ready    worker   70m   v1.23.12+8a6bfe4
    ip-10-0-182-134.ec2.internal   Ready    worker   70m   v1.23.12+8a6bfe4
    ip-10-0-211-16.ec2.internal    Ready    master   82m   v1.23.12+8a6bfe4
    ip-10-0-250-100.ec2.internal   Ready    worker   69m   v1.23.12+8a6bfe4