This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.10.3. OpenShift Update Service を使用した非接続環境でのクラスターの更新
接続されたクラスターと同じように更新するには、次の手順を使用して、非接続環境で OpenShift Update Service をインストールおよび設定できます。
10.3.1. 非接続環境での OpenShift Update Service の使用 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Update Service (OSUS) は、OpenShift Container Platform クラスターに更新の推奨事項を提供します。Red Hat は OpenShift Update Service をパブリックにホストし、接続された環境内のクラスターは、パブリック API を介してサービスに接続して更新の推奨事項を取得できます。
ただし、非接続環境のクラスターは、これらのパブリック API にアクセスして更新情報を取得することはできません。非接続環境で同じように更新を行うには、OpenShift Update Service をローカルにインストールして設定し、非接続環境で使用できるようにします。
次のセクションでは、ローカル OSUS インスタンスをインストールし、更新の推奨事項をクラスターに提供するように設定する方法について説明します。
10.3.2. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
oc
コマンドツールインターフェイス (CLI) ツールがインストールされている。 - OpenShift Container Platform イメージリポジトリーのミラーリング で説明されているように、更新用のコンテナーイメージを使用してローカルのコンテナーイメージレジストリーをプロビジョニングしている。
10.3.3. OpenShift Update Service 向けの セキュリティー保護されたレジストリーへのアクセス設定 リンクのコピーリンクがクリップボードにコピーされました!
リリースイメージが、HTTPS X.509 証明書がカスタム認証局によって署名されているレジストリーに含まれている場合は イメージレジストリーアクセスのトラストストアの追加設定 の手順と、更新サービスに以下の変更を加えます。
OpenShift Update Service Operator では、設定マップのキー名 updateservice-registry
がレジストリー CA 証明書に必要です。
更新サービス向けのイメージレジストリー CA の設定マップの例
10.3.4. グローバルクラスターのプルシークレットの更新 リンクのコピーリンクがクリップボードにコピーされました!
現在のプルシークレットを置き換えるか、新しいプルシークレットを追加することで、クラスターのグローバルプルシークレットを更新できます。
ユーザーがインストール中に使用したレジストリーとは別のレジストリーを使用してイメージを保存する場合は、この手順が必要です。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
オプション: 既存のプルシークレットに新しいプルシークレットを追加するには、以下の手順を実行します。
以下のコマンドを入力してプルシークレットをダウンロードします。
oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' ><pull_secret_location>
$ oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' ><pull_secret_location>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- プルシークレットファイルへのパスを指定します。
以下のコマンドを実行して、新しいプルシークレットを追加します。
oc registry login --registry="<registry>" \ --auth-basic="<username>:<password>" \ --to=<pull_secret_location>
$ oc registry login --registry="<registry>" \
1 --auth-basic="<username>:<password>" \
2 --to=<pull_secret_location>
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、プルシークレットファイルを手動で更新することもできます。
以下のコマンドを実行して、クラスターのグローバルプルシークレットを更新します。
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location>
$ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 新規プルシークレットファイルへのパスを指定します。
この更新はすべてのノードにロールアウトされます。これには、クラスターのサイズに応じて多少時間がかかる場合があります。
注記OpenShift Container Platform 4.7.4 の時点で、グローバルプルシークレットへの変更によってノードドレインまたは再起動がトリガーされなくなりました。
10.3.5. OpenShift Update Service のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Update Service をインストールするには、まず OpenShift Container Platform Web コンソールまたは CLI を使用して OpenShift Update Service Operator をインストールする必要があります。
切断された環境 (非接続クラスターとして知られる) にインストールされているクラスターの場合には、デフォルトで Operator Lifecycle Manager はリモートレジストリーでホストされる Red Hat が提供する OperatorHub ソースにアクセスできません。それらのリモートソースには完全なインターネット接続が必要であるためです。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。
10.3.5.1. Web コンソールを使用した OpenShift Update Service Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して、OpenShift Update Service Operator をインストールできます。
手順
Web コンソールで Operators
OperatorHub をクリックします。 注記Update Service
と Filter by keyword… フィールドに入力し、素早く Operator を見つけます。利用可能な Operator の一覧から OpenShift Update Service を選択し、Install をクリックします。
-
本リリースで利用可能な唯一のチャネルであるため、チャネル
v1
が Update Channel として選択されます。 - A specific namespace on the cluster が Installation Mode で選択します。
-
Installed Namespace の namespace を選択するか、推奨される namespace
openshift-update-service
を受け入れます。 Approval Strategy を選択します。
- Automatic ストラテジーにより、Operator Lifecycle Manager (OLM) は新規バージョンが利用可能になると Operator を自動的に更新できます。
- Manual ストラテジーには、クラスター管理者が Operator の更新を承認する必要があります。
- Install をクリックします。
-
本リリースで利用可能な唯一のチャネルであるため、チャネル
-
Operators
Installed Operators ページに切り替えて、OpenShift Update Service Operator がインストールされていることを確認します。 - Status が Succeeded の OpenShift Update Service が選択された namespace に一覧表示されていることを確認します。
10.3.5.2. CLI を使用した OpenShift Update Service Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc
) を使用して、OpenShift Update Service Operator をインストールできます。
手順
OpenShift Update Service Operator の namespace を作成します。
OpenShift Update Service Operator の
namespace
オブジェクト YAML ファイル (update-service-namespace.yaml
など) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
openshift.io/cluster-monitoring
ラベルを設定して、k この namespace で Operator が推奨するクラスターのモニターリングを有効にします。
namespace を作成します。
oc create -f <filename>.yaml
$ oc create -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc create -f update-service-namespace.yaml
$ oc create -f update-service-namespace.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のオブジェクトを作成して OpenShift Update Service Operator をインストールします。
OperatorGroup
オブジェクト YAML ファイルを作成します (例:update-service-operator-group.yaml
)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroup
オブジェクトを作成します。oc -n openshift-update-service create -f <filename>.yaml
$ oc -n openshift-update-service create -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc -n openshift-update-service create -f update-service-operator-group.yaml
$ oc -n openshift-update-service create -f update-service-operator-group.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Subscription
オブジェクト YAML ファイルを作成します (例:update-service-subscription.yaml
)。Subscription の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Operator を提供するカタログソースの名前を指定します。カスタム Operator Lifecycle Manager (OLM) を使用しないクラスターの場合には、
redhat-operators
を指定します。OpenShift Container Platform クラスターが切断された環境にインストールされている場合、Operator Lifecycle Manager (OLM) を設定したときに作成されたCatalogSource
オブジェクトの名前を指定します。
Subscription
オブジェクトを作成します。oc create -f <filename>.yaml
$ oc create -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc -n openshift-update-service create -f update-service-subscription.yaml
$ oc -n openshift-update-service create -f update-service-subscription.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Update Service Operator は
openshift-update-service
namespace にインストールされ、openshift-update-service
namespace をターゲットにします。
Operator のインストールを確認します。
oc -n openshift-update-service get clusterserviceversions
$ oc -n openshift-update-service get clusterserviceversions
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DISPLAY VERSION REPLACES PHASE update-service-operator.v4.6.0 OpenShift Update Service 4.6.0 Succeeded ...
NAME DISPLAY VERSION REPLACES PHASE update-service-operator.v4.6.0 OpenShift Update Service 4.6.0 Succeeded ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Update Service Operator が記載されている場合には、インストールが成功しています。バージョン番号が表示されるものと異なる場合があります。
10.3.6. OpenShift Update Service グラフデータコンテナーイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Update Service には、OpenShift Update Service がチャネルメンバーシップについての情報を取得し、更新エッジをブロックするグラフデータコンテナーイメージが必要です。通常、グラフデータはアップグレードグラフデータリポジトリーから直接取得します。インターネット接続が利用できない場合には、グラフデータを OpenShift Update Service で利用できるようにする別の方法として init コンテナーからこの情報を読み込むことができます。init コンテナーのロールとして、グラフデータのローカルコピーを提供し、Pod の初期化時に init コンテナーはデータをサービスがアクセスできるボリュームにコピーすることが挙げられます。
手順
以下を含む Dockerfile (
./Dockerfile
など) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の手順で作成した docker ファイルを使用して、グラフデータコンテナーイメージ (例:
registry.example.com/openshift/graph-data:latest
) を構築します。podman build -f ./Dockerfile -t registry.example.com/openshift/graph-data:latest
$ podman build -f ./Dockerfile -t registry.example.com/openshift/graph-data:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前の手順で作成した graph-data コンテナーイメージを、OpenShift Update Service (例:
registry.example.com/openshift/graph-data:latest
) からアクセスできるリポジトリーにプッシュします。podman push registry.example.com/openshift/graph-data:latest
$ podman push registry.example.com/openshift/graph-data:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記切断された環境でグラフデータイメージをローカルレジストリーにプッシュするには、前の手順で作成したグラフデータコンテナーイメージを、OpenShift Update Service からアクセス可能なリポジトリーにコピーします。利用可能なオプションについては、
oc image mirror --help
を実行します。
10.3.7. OpenShift Update Service アプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールまたは CLI を使用し、OpenShift Update Service アプリケーションを作成できます。
10.3.7.1. Web コンソールを使用した OpenShift Update Service アプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、OpenShift Update Service Operator で OpenShift Update Service アプリケーションを作成できます。
前提条件
- OpenShift Update Service Operator がインストールされている。
- OpenShift Update Service の graph-data コンテナーイメージを作成して、OpenShift Update Service がアクセスできるリポジトリーにプッシュしておく。
- 現在のリリースおよび更新ターゲットリリースがローカルアクセス可能なレジストリーにミラーリングされている。
手順
-
Web コンソールで Operators
Installed Operators をクリックします。 - インストールされた Operator の一覧から OpenShift Update Service を選択します。
- Update Service タブをクリックします。
- Create UpdateService をクリックします。
-
service
など、Name フィールドに名前を入力します。 -
Graph Data Image フィールドに OpenShift Update Service グラフデータコンテナーイメージの作成で作成した graph-data コンテナーイメージにローカルの pullspec を入力します (例:
registry.example.com/openshift/graph-data:latest
)。 -
Releases フィールドに、OpenShift Container Platform イメージリポジトリーのミラーリングでリリースイメージを含むように作成したローカルのレジストリーとリポジトリー (例:
registry.example.com/ocp4/openshift4-release-images
) を入力します。 -
Replicas フィールドに
2
と入力します。 - Create をクリックして OpenShift Update Service アプリケーションを作成します。
OpenShift Update Service アプリケーションを検証します。
- Update Service タブの UpdateServices 一覧から、作成した Update Service アプリケーションをクリックします。
- Resources タブをクリックします。
- 各アプリケーションリソースのステータスが Created であることを確認します。
10.3.7.2. CLI を使用した OpenShift Update Service アプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc
) を使用して、OpenShift Update Service アプリケーションを作成できます。
前提条件
- OpenShift Update Service Operator がインストールされている。
- OpenShift Update Service の graph-data コンテナーイメージを作成して、OpenShift Update Service がアクセスできるリポジトリーにプッシュしておく。
- 現在のリリースおよび更新ターゲットリリースがローカルアクセス可能なレジストリーにミラーリングされている。
手順
OpenShift Update Service ターゲット namespace を設定します (例:
openshift-update-service
)。NAMESPACE=openshift-update-service
$ NAMESPACE=openshift-update-service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace は Operator グループの
targetNamespaces
値と一致する必要があります。OpenShift Update Service アプリケーションの名前 (例:
service
) を設定します。NAME=service
$ NAME=service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform イメージリポジトリーの設ミラーリング (例:
registry.example.com/ocp4/openshift4-release-images
) に設定されるように、リリースイメージのローカルレジストリーおよびリポジトリーを設定します。RELEASE_IMAGES=registry.example.com/ocp4/openshift4-release-images
$ RELEASE_IMAGES=registry.example.com/ocp4/openshift4-release-images
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Update Service グラフデータコンテナーイメージの作成で作成した graph-data コンテナーイメージにローカルの pullspec を入力します (例:
registry.example.com/openshift/graph-data:latest
)。GRAPH_DATA_IMAGE=registry.example.com/openshift/graph-data:latest
$ GRAPH_DATA_IMAGE=registry.example.com/openshift/graph-data:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Update Service アプリケーションオブジェクトを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Update Service アプリケーションを検証します。
以下のコマンドを使用してポリシーエンジンルートを取得します。
while sleep 1; do POLICY_ENGINE_GRAPH_URI="$(oc -n "${NAMESPACE}" get -o jsonpath='{.status.policyEngineURI}/api/upgrades_info/v1/graph{"\n"}' updateservice "${NAME}")"; SCHEME="${POLICY_ENGINE_GRAPH_URI%%:*}"; if test "${SCHEME}" = http -o "${SCHEME}" = https; then break; fi; done
$ while sleep 1; do POLICY_ENGINE_GRAPH_URI="$(oc -n "${NAMESPACE}" get -o jsonpath='{.status.policyEngineURI}/api/upgrades_info/v1/graph{"\n"}' updateservice "${NAME}")"; SCHEME="${POLICY_ENGINE_GRAPH_URI%%:*}"; if test "${SCHEME}" = http -o "${SCHEME}" = https; then break; fi; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドが成功するまでポーリングが必要になる場合があります。
ポリシーエンジンからグラフを取得します。
チャネル
に有効なバージョンを指定してください。たとえば、OpenShift Container Platform 4.9 で実行している場合は、stable-4.9
を使用します。while sleep 10; do HTTP_CODE="$(curl --header Accept:application/json --output /dev/stderr --write-out "%{http_code}" "${POLICY_ENGINE_GRAPH_URI}?channel=stable-4.6")"; if test "${HTTP_CODE}" -eq 200; then break; fi; echo "${HTTP_CODE}"; done
$ while sleep 10; do HTTP_CODE="$(curl --header Accept:application/json --output /dev/stderr --write-out "%{http_code}" "${POLICY_ENGINE_GRAPH_URI}?channel=stable-4.6")"; if test "${HTTP_CODE}" -eq 200; then break; fi; echo "${HTTP_CODE}"; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、グラフ要求が成功するまでポーリングされます。ただし、ミラーリングしたリリースイメージによっては、生成されるグラフが空白の場合があります。
ポリシーエンジンのルート名は、RFC-1123 に基づき、63 文字以上を指定できません。host must conform to DNS 1123 naming convention and must be no more than 63 characters
が原因で、ReconcileCompleted
のステータスが false
、理由が CreateRouteFailed
となっている場合には、更新サービスをもう少し短い名前で作成してみてください。
10.3.7.2.1. Cluster Version Operator (CVO) の設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Update Service Operator をインストールして、OpenShift Update Service アプリケーションを作成した後に、ローカルインストールされた OpenShift Update Service からグラフデータをプルするように Cluster Version Operator (CVO) を更新できます。
前提条件
- OpenShift Update Service Operator がインストールされている。
- OpenShift Update Service の graph-data コンテナーイメージを作成して、OpenShift Update Service がアクセスできるリポジトリーにプッシュしておく。
- 現在のリリースおよび更新ターゲットリリースがローカルアクセス可能なレジストリーにミラーリングされている。
- OpenShift Update Service アプリケーションが作成されている。
手順
OpenShift Update Service ターゲット namespace を設定します (例:
openshift-update-service
)。NAMESPACE=openshift-update-service
$ NAMESPACE=openshift-update-service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Update Service アプリケーションの名前 (例:
service
) を設定します。NAME=service
$ NAME=service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーエンジンルートを取得します。
POLICY_ENGINE_GRAPH_URI="$(oc -n "${NAMESPACE}" get -o jsonpath='{.status.policyEngineURI}/api/upgrades_info/v1/graph{"\n"}' updateservice "${NAME}")"
$ POLICY_ENGINE_GRAPH_URI="$(oc -n "${NAMESPACE}" get -o jsonpath='{.status.policyEngineURI}/api/upgrades_info/v1/graph{"\n"}' updateservice "${NAME}")"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プルグラフデータのパッチを設定します。
PATCH="{\"spec\":{\"upstream\":\"${POLICY_ENGINE_GRAPH_URI}\"}}"
$ PATCH="{\"spec\":{\"upstream\":\"${POLICY_ENGINE_GRAPH_URI}\"}}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CVO にパッチを適用して、ローカルの OpenShift Update Service を使用します。
oc patch clusterversion version -p $PATCH --type merge
$ oc patch clusterversion version -p $PATCH --type merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスター全体のプロキシーを有効 にして、更新サーバーを信頼するように CA を設定するを参照してください。
10.3.8. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
クラスターを更新する前に、次の条件が満たされていることを確認してください。
- Cluster Version Operator (CVO) が、ローカルにインストールされた OpenShift Update Service アプリケーションを使用するように設定されている。
- 新しいリリースのリリースイメージ署名 config map がクラスターに適用されている。
- 現在のリリースと更新ターゲットリリースのイメージが、ローカルでアクセス可能なレジストリーにミラーリングされている。
- 最近のグラフデータコンテナーイメージがローカルレジストリーにミラーリングされている。
ローカルにインストールされた OpenShift Update Service とローカルミラーレジストリーを使用するようにクラスターを設定したら、次のいずれかの更新方法を使用できます。