3.2. OpenShift Update Service のインストール


OpenShift Update Service をインストールするには、まず OpenShift Container Platform Web コンソールまたは CLI を使用して OpenShift Update Service Operator をインストールする必要があります。

注記

ネットワークが制限された環境 (非接続クラスターとして知られる) にインストールされているクラスターの場合には、デフォルトで Operator Lifecycle Manager はリモートレジストリーでホストされる Red Hat が提供する OperatorHub ソースにアクセスできません。それらのリモートソースには完全なインターネット接続が必要であるためです。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。

3.2.1. Web コンソールを使用した OpenShift Update Service Operator のインストール

Web コンソールを使用して、OpenShift Update Service Operator をインストールできます。

手順

  1. Web コンソールで Operators OperatorHub をクリックします。

    注記

    Update ServiceFilter by keyword…​ フィールドに入力し、素早く Operator を見つけます。

  2. 利用可能な Operator の一覧から OpenShift Update Service を選択し、Install をクリックします。

    1. 本リリースで利用可能な唯一のチャネルであるため、チャネル v1Update Channel として選択されます。
    2. A specific namespace on the clusterInstallation Mode で選択します。
    3. Installed Namespace の namespace を選択するか、推奨される namespace openshift-update-service を受け入れます。
    4. Approval Strategy を選択します。

      • Automatic ストラテジーにより、Operator Lifecycle Manager (OLM) は新規バージョンが利用可能になると Operator を自動的に更新できます。
      • Manual ストラテジーには、クラスター管理者が Operator の更新を承認する必要があります。
    5. Install をクリックします。
  3. Operators Installed Operators ページに切り替えて、OpenShift Update Service Operator がインストールされていることを確認します。
  4. StatusSucceededOpenShift Update Service が選択された namespace に一覧表示されていることを確認します。

3.2.2. CLI を使用した OpenShift Update Service Operator のインストール

OpenShift CLI (oc) を使用して、OpenShift Update Service Operator をインストールできます。

手順

  1. OpenShift Update Service Operator の namespace を作成します。

    1. OpenShift Update Service Operator の namespace オブジェクト YAML ファイル (update-service-namespace.yaml など) を作成します。

      apiVersion: v1
      kind: Namespace
      metadata:
        name: openshift-update-service
        annotations:
          openshift.io/node-selector: ""
        labels:
          openshift.io/cluster-monitoring: "true" 1
      1
      openshift.io/cluster-monitoring ラベルを設定して、k この namespace で Operator が推奨するクラスターのモニターリングを有効にします。
    2. namespace を作成します。

      $ oc create -f <filename>.yaml

      以下に例を示します。

      $ oc create -f update-service-namespace.yaml
  2. 以下のオブジェクトを作成して OpenShift Update Service Operator をインストールします。

    1. OperatorGroup オブジェクト YAML ファイルを作成します (例: update-service-operator-group.yaml)。

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: update-service-operator-group
      spec:
        targetNamespaces:
        - openshift-update-service
    2. OperatorGroup オブジェクトを作成します。

      $ oc -n openshift-update-service create -f <filename>.yaml

      以下に例を示します。

      $ oc -n openshift-update-service create -f update-service-operator-group.yaml
    3. Subscription オブジェクト YAML ファイルを作成します (例: update-service-subscription.yaml)。

      Subscription の例

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: update-service-subscription
      spec:
        channel: v1
        installPlanApproval: "Automatic"
        source: "redhat-operators" 1
        sourceNamespace: "openshift-marketplace"
        name: "cincinnati-operator"

      1
      Operator を提供するカタログソースの名前を指定します。カスタム Operator Lifecycle Manager (OLM) を使用しないクラスターの場合には、redhat-operators を指定します。OpenShift Container Platform クラスターが、非接続クラスターとも呼ばれるネットワークが制限された環境でインストールされている場合、Operator Lifecycle Manager (OLM) の設定時に作成される CatalogSource オブジェクトの名前を指定します。
    4. Subscription オブジェクトを作成します。

      $ oc create -f <filename>.yaml

      以下に例を示します。

      $ oc -n openshift-update-service create -f update-service-subscription.yaml

      OpenShift Update Service Operator は openshift-update-service namespace にインストールされ、openshift-update-service namespace をターゲットにします。

  3. Operator のインストールを確認します。

    $ oc -n openshift-update-service get clusterserviceversions

    出力例

    NAME                             DISPLAY                    VERSION   REPLACES   PHASE
    update-service-operator.v4.6.0   OpenShift Update Service   4.6.0                Succeeded
    ...

    OpenShift Update Service Operator が記載されている場合には、インストールが成功しています。バージョン番号が表示されるものと異なる場合があります。

3.2.3. OpenShift Update Service グラフデータコンテナーイメージの作成

OpenShift Update Service には、OpenShift Update Service がチャネルメンバーシップについての情報を取得し、更新エッジをブロックするグラフデータコンテナーイメージが必要です。通常、グラフデータはアップグレードグラフデータリポジトリーから直接取得します。インターネット接続が利用できない場合には、グラフデータを OpenShift Update Service で利用できるようにする別の方法として init コンテナーからこの情報を読み込むことができます。init コンテナーのロールとして、グラフデータのローカルコピーを提供し、Pod の初期化時に init コンテナーはデータをサービスがアクセスできるボリュームにコピーすることが挙げられます。

手順

  1. 以下を含む Dockerfile (./Dockerfile など) を作成します。

    FROM registry.access.redhat.com/ubi8/ubi:8.1
    
    RUN curl -L -o cincinnati-graph-data.tar.gz https://github.com/openshift/cincinnati-graph-data/archive/master.tar.gz
    
    CMD exec /bin/bash -c "tar xvzf cincinnati-graph-data.tar.gz -C /var/lib/cincinnati/graph-data/ --strip-components=1"
  2. 上記の手順で作成した docker ファイルを使用して、グラフデータコンテナーイメージ (例: registry.example.com/openshift/graph-data:latest) を構築します。

    $ podman build -f ./Dockerfile -t registry.example.com/openshift/graph-data:latest
  3. 前の手順で作成した graph-data コンテナーイメージを、OpenShift Update Service (例: registry.example.com/openshift/graph-data:latest) からアクセスできるリポジトリーにプッシュします。

    $ podman push registry.example.com/openshift/graph-data:latest
    注記

    制限のあるネットワーク環境に存在するローカルレジストリーにグラフデータイメージをプッシュするには、前の手順で作成した graph-data コンテナーイメージを OpenShift Update Service がアクセスできるリポジトリーにコピーします。利用可能なオプションについては、oc image mirror --help を実行します。

3.2.4. OpenShift Container Platform イメージリポジトリーのミラーリング

OpenShift Update Service には、更新リリースペイロードを含む、ローカルでアクセス可能なレジストリーが必要です。

重要

OpenShift Update Service アプリケーションで、メモリーが過剰に使用されないようにするため、以下の手順に従って、リリースイメージを別のリポジトリーにミラーリングすることが推奨されます。

前提条件

  • 非接続インストールのイメージのミラーリングからOpenShift Container Platform イメージリポジトリーのミラーリングというタイトルのセクションまでのステップを確認して完了している。
  • ネットワークが制限された環境で使用するミラーレジストリーを設定し、設定した証明書および認証情報にアクセスできる。
  • Red Hat OpenShift Cluster Manager からプルシークレット をダウンロードし、ミラーリポジトリーへの認証を含めるようにこれを変更している。
  • Subject Alternative Name が設定されていない自己署名証明書を使用する場合は、この手順の oc コマンドの前に GODEBUG=x509ignoreCN=0 を追加する必要があります。この変数を設定しない場合、oc コマンドは以下のエラーを出して失敗します。

    x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0

手順

ミラーホストで以下の手順を実行します。

  1. OpenShift Container Platform ダウンロード ページを確認し、更新する必要のある OpenShift Container Platform のバージョンを判別し、Repository Tags ページで対応するタグを判別します。
  2. 必要な環境変数を設定します。

    1. リリースバージョンをエクスポートします。

      $ OCP_RELEASE=<release_version>

      <release_version> について、インストールする OpenShift Container Platform のバージョンに対応するタグを指定します (例: 4.6.4)。

    2. ローカルレジストリー名とホストポートをエクスポートします。

      $ LOCAL_REGISTRY='<local_registry_host_name>:<local_registry_host_port>'

      <local_registry_host_name> については、ミラーレジストリーのレジストリードメイン名を指定し、<local_registry_host_port> については、コンテンツの送信に使用するポートを指定します。

    3. ローカルリポジトリー名をエクスポートします。

      $ LOCAL_REPOSITORY='<local_repository_name>'

      <local_repository_name> については、ocp4/openshift4 などのレジストリーに作成するリポジトリーの名前を指定します。

    4. 追加のローカルリポジトリー名をエクスポートして、リリースイメージを追加します。

      $ LOCAL_RELEASE_IMAGES_REPOSITORY='<local_release_images_repository_name>'

      <local_release_images_repository_name> については、ocp4/openshift4-release-images などのレジストリーに作成するリポジトリーの名前を指定します。

    5. ミラーリングするリポジトリーの名前をエクスポートします。

      $ PRODUCT_REPO='openshift-release-dev'

      実稼働環境のリリースの場合には、openshift-release-dev を指定する必要があります。

    6. パスをレジストリープルシークレットにエクスポートします。

      $ LOCAL_SECRET_JSON='<path_to_pull_secret>'

      <path_to_pull_secret> については、作成したミラーレジストリーのプルシークレットの絶対パスおよびファイル名を指定します。

    7. リリースミラーをエクスポートします。

      $ RELEASE_NAME="ocp-release"

      実稼働環境のリリースについては、ocp-release を指定する必要があります。

    8. サーバーのアーキテクチャーのタイプをエクスポートします (例: x86_64)。

      $ ARCHITECTURE=<server_architecture>
    9. ミラーリングされたイメージをホストするためにディレクトリーへのパスをエクスポートします。

      $ REMOVABLE_MEDIA_PATH=<path> 1
      1
      最初のスラッシュ (/) 文字を含む完全パスを指定します。
  3. バージョンイメージをミラーレジストリーにミラーリングします。

    • ミラーホストがインターネットにアクセスできない場合は、以下の操作を実行します。

      1. リムーバブルメディアをインターネットに接続しているシステムに接続します。
      2. ミラーリングするイメージおよび設定マニフェストを確認します。

        $ oc adm release mirror -a ${LOCAL_SECRET_JSON}  \
             --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} \
             --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \
             --to-release-image=${LOCAL_REGISTRY}/${LOCAL_RELEASE_IMAGES_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE} --dry-run
      3. イメージをリムーバブルメディア上のディレクトリーにミラーリングします。

        $ oc adm release mirror -a ${LOCAL_SECRET_JSON} --to-dir=${REMOVABLE_MEDIA_PATH}/mirror quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE}
      4. メディアをネットワークが制限された環境に移し、イメージをローカルコンテナーレジストリーにアップロードします。

        $ oc image mirror -a ${LOCAL_SECRET_JSON} --from-dir=${REMOVABLE_MEDIA_PATH}/mirror "file://openshift/release:${OCP_RELEASE}*" ${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} 1
        1
        REMOVABLE_MEDIA_PATH の場合は、リムーバブルメディアをマウントしたパスを使用する必要があります。
      5. リリースイメージを別のリポジトリーにミラーリングします。

        $ oc image mirror -a ${LOCAL_SECRET_JSON} ${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE} ${LOCAL_REGISTRY}/${LOCAL_RELEASE_IMAGES_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}
    • ローカルコンテナーレジストリーがミラーホストに接続されている場合、リリースイメージをローカルレジストリーに直接プッシュできます。

      $ oc adm release mirror -a ${LOCAL_SECRET_JSON}  \
           --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} \
           --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \
           --to-release-image=${LOCAL_REGISTRY}/${LOCAL_RELEASE_IMAGES_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.