9.5. 创建镜像签名配置映射
在更新集群前,需要手动创建包含您使用的发行版本镜像签名的配置映射。此签名允许 Cluster Version Operator(CVO)通过比较预期的及实际镜像签名来验证发行的镜像没有被修改。
如果要从 4.4.8 或更高版本升级,您可以使用 oc
CLI 创建配置映射。如果您是从更早的版本升级,则必须使用手动方法。
9.5.1. 手动创建镜像签名配置映射
创建并应用镜像签名配置映射到您要更新的集群。
注意
每次更新集群时都必须执行以下步骤。
流程
- 请参阅 OpenShift Container Platform 升级路径 知识库文章,以确定集群的有效升级路径。
将版本添加到
OCP_RELEASE_NUMBER
环境变量中:$ OCP_RELEASE_NUMBER=<release_version> 1
- 1
- 对于
<release_version>
,请指定与集群升级到的 OpenShift Container Platform 版本对应的标签,如4.4.0
。
将集群的系统构架添加到
ARCHITECTURE
环境变量中:$ ARCHITECTURE=<server_architecture> 1
- 1
- 对于
server_architecture
,指定服务器的构架,如x86_64
。
从 Quay 获取发行版本镜像摘要:
$ DIGEST="$(oc adm release info quay.io/openshift-release-dev/ocp-release:${OCP_RELEASE_NUMBER}-${ARCHITECTURE} | sed -n 's/Pull From: .*@//p')"
设置摘要算法:
$ DIGEST_ALGO="${DIGEST%%:*}"
设置摘要签名:
$ DIGEST_ENCODED="${DIGEST#*:}"
从 mirror.openshift.com 网站获取镜像签名。
$ SIGNATURE_BASE64=$(curl -s "https://mirror.openshift.com/pub/openshift-v4/signatures/openshift/release/${DIGEST_ALGO}=${DIGEST_ENCODED}/signature-1" | base64 -w0 && echo)
创建配置映射:
$ cat >checksum-${OCP_RELEASE_NUMBER}.yaml <<EOF apiVersion: v1 kind: ConfigMap metadata: name: release-image-${OCP_RELEASE_NUMBER} namespace: openshift-config-managed labels: release.openshift.io/verification-signatures: "" binaryData: ${DIGEST_ALGO}-${DIGEST_ENCODED}: ${SIGNATURE_BASE64} EOF
将配置映射应用到集群以更新:
$ oc apply -f checksum-${OCP_RELEASE_NUMBER}.yaml