第 3 章 安装和配置 OpenShift Update Service

对于可访问互联网的集群,红帽通过 OpenShift Container Platform 更新服务提供更新,它作为公共 API 后面的一个托管服务运行。但是,受限网络中的集群无法访问公共 API 来获取更新信息。

要在受限网络中提供类似的升级体验,您可以在本地安装和配置 OpenShift Update Service,使其在断开连接的环境中可用。

以下小节描述了如何为断开连接的集群及其底层操作系统提供无线更新。

3.1. 先决条件

3.1.1. 为 OpenShift 更新服务配置对安全 registry 的访问权限

如果发行镜像包括在安全 registry 中,请完成 为镜像 registry 访问配置额外信任存储的步骤,以及更新服务的以下更改。

OpenShift Update Service Operator 需要 registry CA 证书中的配置映射键名称为 updateservice-registry

更新服务的镜像 registry CA 配置映射示例

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-registry-ca
data:
  updateservice-registry: | 1
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
  registry-with-port.example.com..5000: | 2
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----

1
OpenShift Update Service Operator 需要 registry CA 证书中的配置映射键名称 updateservice-registry。
2
如果 registry 带有端口,如 registry-with-port.example.com:5000: 需要被 .. 替换。

3.1.2. 更新全局集群 pull secret

您可以通过替换当前的 pull secret 或附加新的 pull secret 来更新集群的全局 pull secret。

当用户使用单独的 registry 存储镜像而不使用安装过程中的 registry时,需要这个过程。

警告

集群资源必须调整为新的 pull secret,这样可暂时限制集群的可用性。

警告

更新全局 pull secret 会导致在 Machine Config Operator(MCO)同步更改时节点重启。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 可选: 要将新的 pull secret 附加到现有 pull secret 中,请完成以下步骤:

    1. 输入以下命令下载 pull secret:

      $ oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' ><pull_secret_location> 1
      1
      提供 pull secret 文件的路径。
    2. 输入以下命令来添加新 pull secret:

      $ oc registry login --registry="<registry>" \ 1
      --auth-basic="<username>:<password>" \ 2
      --to=<pull_secret_location> 3
      1
      提供新的 registry。您可以在同一个 registry 中包含多个软件仓库,例如:--registry="<registry/my-namespace/my-repository>"
      2
      提供新 registry 的凭据。
      3
      提供 pull secret 文件的路径。

      另外,您可以对 pull secret 文件执行手动更新。

  2. 输入以下命令为您的集群更新全局 pull secret:

    $ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location> 1
    1
    提供新 pull secret 文件的路径。

该更新将推广至所有节点,可能需要一些时间,具体取决于集群大小。在这段时间中,节点会排空 (drain),pod 将在剩余节点上重新调度。