6.2. 使用 CLI 更新集群
如果有可用更新,您可以使用OpenShift CLI (oc
)更新集群。
您可以在客户门户网站的勘误部分找到有关可用 OpenShift Container Platform 公告和更新的信息。
先决条件
-
安装与更新版本的版本匹配的 OpenShift CLI(
oc
)。 -
使用具有
cluster-admin
权限的用户登陆到集群。 -
安装
jq
软件包。
流程
确认集群可用
$ oc get clusterversion
输出示例
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.6.9 True False 158m Cluster version is 4.6.9
检查当前的更新频道信息,并确认您的频道已设置为
stable-4.7
:$ oc get clusterversion -o json|jq ".items[0].spec"
输出示例
{ "channel": "stable-4.7", "clusterID": "990f7ab8-109b-4c95-8480-2bd1deec55ff" }
重要对于生产环境中的集群,需要订阅到
stable-*
或fast-*
频道。查看可用更新,记录下要应用的更新的版本号:
$ oc adm upgrade
输出示例
Cluster version is 4.1.0 Updates: VERSION IMAGE 4.1.2 quay.io/openshift-release-dev/ocp-release@sha256:9c5f0df8b192a0d7b46cd5f6a4da2289c155fd5302dec7954f8f06c878160b8b
应用更新:
查看 Cluster Version Operator 的状态:
$ oc get clusterversion -o json|jq ".items[0].spec"
输出示例
{ "channel": "stable-4.7", "clusterID": "990f7ab8-109b-4c95-8480-2bd1deec55ff", "desiredUpdate": { "force": false, "image": "quay.io/openshift-release-dev/ocp-release@sha256:9c5f0df8b192a0d7b46cd5f6a4da2289c155fd5302dec7954f8f06c878160b8b", "version": "4.7.0" 1 } }
- 1
- 如果
desiredUpdate
中的version
值与您指定的值匹配,则更新正在进行中。
查看集群版本状态历史记录以监控更新的状态。这可能需要一些时间才能完成对所有对象的更新。
$ oc get clusterversion -o json|jq ".items[0].status.history"
输出示例
[ { "completionTime": null, "image": "quay.io/openshift-release-dev/ocp-release@sha256:b8fa13e09d869089fc5957c32b02b7d3792a0b6f36693432acc0409615ab23b7", "startedTime": "2021-01-28T20:30:50Z", "state": "Partial", "verified": true, "version": "4.7.0" }, { "completionTime": "2021-01-28T20:30:50Z", "image": "quay.io/openshift-release-dev/ocp-release@sha256:b8fa13e09d869089fc5957c32b02b7d3792a0b6f36693432acc0409615ab23b7", "startedTime": "2021-01-28T17:38:10Z", "state": "Completed", "verified": false, "version": "4.7.0" } ]
历史记录包含了应用于集群的最新版本的列表。当CVO应用更新时,此值将会被相应更新。该列表按日期排序,最新的更新会在列表中第一个显示。如果历史信息中的更新状态为
Completed
,则表示部署已完成;如果状态为Partial
,则表示更新失败或还未完成。更新完成后,可以通过以下方法确认集群已更新为新版本:
$ oc get clusterversion
输出示例
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.7.0 True False 2m Cluster version is 4.7.0
如果您要将集群升级到下一个次版本,如从 4.y 升级到 4.(y+1),建议在部署依赖新功能的工作负载前确认您的节点已升级:
$ oc get nodes
输出示例
NAME STATUS ROLES AGE VERSION ip-10-0-168-251.ec2.internal Ready master 82m v1.20.0 ip-10-0-170-223.ec2.internal Ready master 82m v1.20.0 ip-10-0-179-95.ec2.internal Ready worker 70m v1.20.0 ip-10-0-182-134.ec2.internal Ready worker 70m v1.20.0 ip-10-0-211-16.ec2.internal Ready master 82m v1.20.0 ip-10-0-250-100.ec2.internal Ready worker 69m v1.20.0