第3章 OpenShift Update Service のインストールと設定

インターネットにアクセスできるクラスターの場合に、Red Hat は、パブリック API の背後にあるホスト型サービスとして OpenShift Container Platform 更新サービスを介して OTA (over-the-air) 更新を提供します。ただし、ネットワークが制限された環境のクラスターは、パブリック API にアクセスして更新情報を取得する方法はありません。

ネットワークが制限された環境で同様の更新エクスペリエンスを提供するには、OpenShift Update Service をローカルでインストールして、非接続環境で利用できるようにします。

以下のセクションでは、非接続クラスターとその基礎となるオペレーティングシステムの OTA (over-the-air) 更新を提供する方法を説明します。

3.1. 前提条件

3.1.1. OpenShift Update Service 向けの セキュリティー保護されたレジストリーへのアクセス設定

リリースイメージがセキュリティー保護されたレジストリーに含まれている場合には、イメージレジストリーアクセスの追加トラストストアの設定 の手順を実行して、更新サービスに以下の変更を加えます。

OpenShift Update Service Operator では、設定マップのキー名 updateservice-registry がレジストリー CA 証明書に必要です。

更新サービス向けのイメージレジストリー 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 では、設定マップのキー名 updateservice-registry がレジストリー CA 証明書に必要です。
2
レジストリーにポートがある場合 (例: registry-with-port.example.com:5000)、:.. に置き換える必要があります。

3.1.2. グローバルクラスターのプルシークレットの更新

現在のプルシークレットを置き換えるか、新しいプルシークレットを追加することで、クラスターのグローバルプルシークレットを更新できます。

ユーザーがインストール中に使用したレジストリーとは別のレジストリーを使用してイメージを保存する場合は、この手順が必要です。

警告

クラスターリソースは新規のプルシークレットに合わせて調整する必要がありますが、これにより、クラスターのユーザービリティーが一時的に制限される可能性があります。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  1. オプション: 既存のプルシークレットに新しいプルシークレットを追加するには、以下の手順を実行します。

    1. 以下のコマンドを入力してプルシークレットをダウンロードします。

      $ oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' ><pull_secret_location> 1
      1
      プルシークレットファイルへのパスを指定します。
    2. 以下のコマンドを実行して、新しいプルシークレットを追加します。

      $ oc registry login --registry="<registry>" \ 1
      --auth-basic="<username>:<password>" \ 2
      --to=<pull_secret_location> 3
      1
      新しいレジストリーを指定します。同じレジストリー内に複数のリポジトリーを含めることができます (例: --registry="<registry/my-namespace/my-repository>")。
      2
      新しいレジストリーの認証情報を指定します。
      3
      プルシークレットファイルへのパスを指定します。

      または、プルシークレットファイルを手動で更新することもできます。

  2. 以下のコマンドを実行して、クラスターのグローバルプルシークレットを更新します。

    $ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location> 1
    1
    新規プルシークレットファイルへのパスを指定します。

    この更新はすべてのノードにロールアウトされます。これには、クラスターのサイズに応じて多少時間がかかる場合があります。

    注記

    OpenShift Container Platform 4.7.4 の時点で、グローバルプルシークレットへの変更によってノードドレインまたは再起動がトリガーされなくなりました。