第3章 クラスターの更新の実行


3.1. CLI を使用したクラスターの更新

OpenShift CLI (oc) を使用して、OpenShift Container Platform クラスターでマイナーバージョンおよびパッチの更新を実行できます。

3.1.1. 前提条件

  • admin 権限を持つユーザーとしてクラスターにアクセスできる。RBAC の使用によるパーミッションの定義および適用 を参照してください。
  • 更新が失敗し、クラスターを以前の状態に復元する 必要がある場合に、最新の etcd バックアップ があること。
  • Pod の障害が原因で永続ボリュームを復元する必要がある場合に備えて、最新の Container Storage Interface (CSI)ボリュームスナップショット がある。
  • RHEL7 ワーカーは、RHEL8 または RHCOS ワーカーに置き換えられます。Red Hat は、RHEL7 から RHEL8 への RHEL ワーカーのインプレース更新をサポートしていません。このようなホストは、オペレーティングシステムをクリーンインストールして置き換える必要があります。
  • Operator Lifecycle Manager (OLM) を通じて以前にインストールされたすべての Operator を、ターゲットリリースと互換性のあるバージョンに更新している。Operator を更新することで、デフォルトのソフトウェアカタログが、クラスターの更新時に現行のマイナーバージョンから次のマイナーバージョンに切り替わる際、確実に有効な更新パスがあるようにします。互換性を確認する方法や、必要に応じて インストールされた Operator を更新する方法についての 詳細は、インストールされた Operator の更新 を参照してください。
  • すべてのマシン設定プール (MCP) が実行中であり、一時停止していないことを確認します。一時停止した MCP に関連付けられたノードは、更新プロセス中にスキップされます。カナリアロールアウト更新ストラテジーを実行している場合は、MCP を一時停止できる。
  • クラスターが手動で維持された認証情報を使用している場合は、新しいリリース用にクラウドプロバイダーリソースを更新します。これがクラスターの要件かどうかを判断する方法などの詳細は、手動で維持された認証情報でクラスターを更新する準備 を参照してください。
  • クラスターで次のマイナーバージョンへの更新ができるように、すべての Upgradeable=False 条件に対応してください。アラートは、アップグレードできない 1 つ以上のクラスター Operator がある場合に Cluster Settings ページの上部に表示されます。引き続き、現在使用しているマイナーリリースについて、次に利用可能なパッチ更新に更新できます。
  • Operator を実行している場合、または Pod 中断バジェットを使用してアプリケーションを設定している場合は、更新プロセス中に中断が発生する可能性があります。PodDisruptionBudgetminAvailable が 1 に設定されている場合、保留中のマシン設定を適用するためにノードがドレインされ、エビクションプロセスがブロックされる可能性があります。複数のノードが再起動された場合に、すべての Pod が 1 つのノードでのみ実行される可能性があり、PodDisruptionBudget フィールドはノードのドレインを防ぐことができます。
重要
  • 更新が完了しなかった場合、Cluster Version Operator (CVO) は、更新の調整を試みている間、ブロックしているコンポーネントのステータスを報告します。クラスターの以前のバージョンへのロールバックはサポートされていません。更新が完了しない場合は、Red Hat サポートにお問い合わせください。
  • unsupportedConfigOverrides セクションを使用して Operator の設定を変更することはサポートされておらず、クラスターの更新をブロックする可能性があります。クラスターを更新する前に、この設定を削除する必要があります。

3.1.2. MachineHealthCheck リソースの一時停止

更新プロセスで、クラスター内のノードが一時的に利用できなくなる可能性があります。ワーカーノードの場合、MachineHealthCheck リソースにより、このようなノードは正常ではないと識別され、それらが再起動される場合があります。このようなノードの再起動を回避するには、クラスターを更新する前にすべての MachineHealthCheck リソースを一時停止します。

注記

一部の MachineHealthCheck リソースは一時停止する必要がない場合があります。MachineHealthCheck リソースが回復不可能な条件に依存している場合は、その MHC を一時停止する必要はありません。

前提条件

  • OpenShift CLI (oc) がインストールされている。

手順

  1. 一時停止する利用可能なすべての MachineHealthCheck リソースをリスト表示するには、以下のコマンドを実行します。

    $ oc get machinehealthcheck -n openshift-machine-api
    Copy to Clipboard Toggle word wrap
  2. マシンヘルスチェックを一時停止するには、cluster.x-k8s.io/paused="" アノテーションを MachineHealthCheck リソースに追加します。以下のコマンドを実行します。

    $ oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused=""
    Copy to Clipboard Toggle word wrap

    アノテーション付きの MachineHealthCheck リソースは以下の YAML ファイルのようになります。

    apiVersion: machine.openshift.io/v1beta1
    kind: MachineHealthCheck
    metadata:
      name: example
      namespace: openshift-machine-api
      annotations:
        cluster.x-k8s.io/paused: ""
    spec:
      selector:
        matchLabels:
          role: worker
      unhealthyConditions:
      - type:    "Ready"
        status:  "Unknown"
        timeout: "300s"
      - type:    "Ready"
        status:  "False"
        timeout: "300s"
      maxUnhealthy: "40%"
    status:
      currentHealthy: 5
      expectedMachines: 5
    Copy to Clipboard Toggle word wrap
    重要

    クラスターの更新後にマシンヘルスチェックを再開します。チェックを再開するには、以下のコマンドを実行して MachineHealthCheck リソースから pause アノテーションを削除します。

    $ oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused-
    Copy to Clipboard Toggle word wrap

3.1.3. 単一ノードの OpenShift Container Platform の更新

コンソールまたは CLI のいずれかを使用して、単一ノードの OpenShift Container Platform クラスターを更新またはアップグレードできます。

ただし、以下の制限事項に注意してください。

  • 他にヘルスチェックを実行するノードがないので、MachineHealthCheck リソースを一時停止する時に課される前提条件は必要ありません。
  • etcd バックアップを使用した単一ノードの OpenShift Container Platform クラスターの復元は、正式にはサポートされていません。ただし、更新に失敗した場合は、etcd バックアップを実行することが推奨されます。コントロールプレーンが正常である場合には、バックアップを使用してクラスターを以前の状態に復元できる場合があります。
  • 単一ノードの OpenShift Container Platform クラスターを更新するには、ダウンタイムが必要です。更新には、自動再起動も含まれる可能性があります。ダウンタイムの時間は、以下のシナリオのように更新ペイロードによって異なります。

    • 更新ペイロードに再起動が必要なオペレーティングシステムの更新が含まれる場合には、ダウンタイムは、クラスター管理およびユーザーのワークロードに大きく影響します。
    • 更新に含まれるマシン設定の変更で、再起動の必要がない場合には、ダウンタイムは少なくなり、クラスター管理およびユーザーワークロードへの影響は低くなります。この場合、クラスターに、ワークロードの再スケジューリングするノードが他にないため、単一ノードの OpenShift Container Platform でノードのドレイン (解放) のステップが省略されます。
    • 更新ペイロードにオペレーティングシステムの更新またはマシン設定の変更が含まれていない場合は、API が短時間してすぐに解決します。
重要

更新パッケージのバグなどの制約があり、再起動後に単一ノードが再起動されないことがあります。この場合、更新は自動的にロールバックされません。

3.1.4. CLI を使用したクラスターの更新

OpenShift CLI (oc) を使用して、クラスターの更新を確認および要求できます。

利用可能な OpenShift Container Platform アドバイザリーおよび更新は、カスタマーポータルの エラータ のセクションを参照してください。

前提条件

  • 仕様している更新バージョンのバージョンに一致する OpenShift CLI (oc) をインストールしている。
  • cluster-admin 権限を持つユーザーとしてクラスターにログインしている。
  • すべての MachineHealthCheck リソースを一時停止している。

手順

  1. 利用可能な更新を確認し、適用する必要のある更新のバージョン番号をメモします。

    $ oc adm upgrade recommend
    Copy to Clipboard Toggle word wrap

    出力例

    Failing=True:
    
      Reason: ClusterOperatorNotAvailable
      Message: Cluster operator monitoring is not available
    ...
    Upstream update service: https://api.integration.openshift.com/api/upgrades_info/graph
    Channel: candidate-4.16 (available channels: candidate-4.16, candidate-4.17, candidate-4.18, eus-4.16, fast-4.16, fast-4.17, stable-4.16, stable-4.17)
    
    Updates to 4.16:
      VERSION     ISSUES
      4.16.32     no known issues relevant to this cluster
      4.16.30     no known issues relevant to this cluster
    And 2 older 4.16 updates you can see with '--show-outdated-releases' or '--version VERSION'.
    Copy to Clipboard Toggle word wrap

    注記
    • この-- version フラグを使用して、特定のバージョンが更新に推奨されているかどうかを判断できます。推奨される更新がない場合でも、既知の問題がある更新がまだ利用できる可能性があります。
    • Control Plane Only の更新を実行する方法の詳細情報は、関連情報セクションに記載されている コントロールプレーンのみの更新を実行するための準備 ページを参照してください。
  2. 組織の要件に基づいて、適切な更新チャネルを設定します。たとえば、チャネルを stable-4.13 または fast-4.13 に設定できます。チャネルの詳細は、追加リソースセクションにリストされている 更新チャネルとリリースについて を参照してください。

    $ oc adm upgrade channel <channel>
    Copy to Clipboard Toggle word wrap

    たとえば、チャネルを stable-4.20 に設定するには、以下を実行します。

    $ oc adm upgrade channel stable-4.20
    Copy to Clipboard Toggle word wrap
    重要

    実稼働クラスターの場合、stable-*eus-* または fast-* チャネルにサブスクライブする必要があります。

    注記

    次のマイナーバージョンに移行する準備ができたら、そのマイナーバージョンに対応するチャネルを選択します。更新チャネルの宣言が早ければ早いほど、クラスターはターゲットバージョンへの更新パスをより効果的に推奨できます。クラスターは、利用可能なすべての可能な更新プログラムを評価し、最適な更新プログラムの推奨事項を選択するために、しばらく時間がかかる場合があります。更新の推奨事項は、その時点で利用可能な更新オプションに基づいているため、時間の経過とともに変化する可能性があります。

    ターゲットマイナーバージョンへの更新パスが表示されない場合は、次のマイナーバージョンがパスで利用可能になるまで、現在のバージョンの最新のパッチリリースにクラスターを更新し続けます。

  3. 更新を適用します。

    • 最新バージョンに更新するには、以下を実行します。

      $ oc adm upgrade --to-latest=true 
      1
      Copy to Clipboard Toggle word wrap
    • 特定のバージョンに更新するには、以下を実行します。

      $ oc adm upgrade --to=<version> 
      1
      Copy to Clipboard Toggle word wrap
      1 1
      <version > は、oc adm upgrade recommend コマンドの出力から取得した更新バージョンです。
      1. クラスター管理者が潜在的な既知のリスクを評価し、それが現在のクラスターに受け入れられると判断した場合、管理者は次のコマンドを実行して安全ガードを放棄し、更新に進むことができます。

        $ oc adm upgrade --allow-not-recommended --to <version>
        Copy to Clipboard Toggle word wrap
        重要

        oc adm upgrade --help を使用する場合、--force のオプションがリストされています。これは、強く非推奨 とされています。--force オプションを使用すると、リリースの検証や前提条件のチェックなど、クラスター側の保護機能をバイパスしてしまうためです。--force を使用しても、更新が成功することは保証されません。ガードをバイパスすると、クラスターが危険にさらされます。

  4. オプション:次のコマンドを実行して、Cluster Version Operator のステータスを確認します。

    $ oc adm upgrade status
    Copy to Clipboard Toggle word wrap
    注記

    更新をリアルタイムで監視するには、watch ユーティリティーで oc adm upgrade status を実行します。

  5. 更新が完了したら、クラスターのバージョンが新たなバージョンに更新されていることを確認できます。

    $ oc adm upgrade
    Copy to Clipboard Toggle word wrap

    出力例

    Cluster version is <version>
    
    Upstream is unset, so the cluster will use an appropriate default.
    Channel: stable-<version> (available channels: candidate-<version>, eus-<version>, fast-<version>, stable-<version>)
    
    No updates available. You may force an update to a specific release image, but doing so might not be supported and might result in downtime or data loss.
    Copy to Clipboard Toggle word wrap

  6. クラスターを次のマイナーバージョン (バージョン X.y から X.(y+1) など) に更新する場合は、新しい機能に依存するワークロードをデプロイする前に、ノードが更新されていることを確認することが推奨されます。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                           STATUS   ROLES    AGE   VERSION
    ip-10-0-168-251.ec2.internal   Ready    master   82m   v1.33.4
    ip-10-0-170-223.ec2.internal   Ready    master   82m   v1.33.4
    ip-10-0-179-95.ec2.internal    Ready    worker   70m   v1.33.4
    ip-10-0-182-134.ec2.internal   Ready    worker   70m   v1.33.4
    ip-10-0-211-16.ec2.internal    Ready    master   82m   v1.33.4
    ip-10-0-250-100.ec2.internal   Ready    worker   69m   v1.33.4
    Copy to Clipboard Toggle word wrap

3.1.5. oc adm upgrade status を使用したクラスター更新ステータス

クラスターの更新時に、oc adm upgrade コマンドは更新のステータスに関する制限された情報を返します。クラスター管理者は oc adm upgrade status コマンドを使用してステータス情報を oc adm upgrade コマンドから切り離し、コントロールプレーンとワーカーノードの更新のステータスなど、クラスターの更新に関する特定の情報を返すことができます。worker はコンピュートとも呼ばれます。

oc adm upgrade status コマンドは読み取り専用で、クラスターの状態は変更されません。

oc adm upgrade status コマンドは、バージョン 4.12 から最新のサポートされているリリースまでのクラスターに使用できます。

oc adm upgrade status コマンドは、3 つのセクション(コントロールプレーンの更新、ワーカーノードの更新、およびヘルスインサイト)を出力します。

  • コントロールプレーン の更新: クラスターの更新に関する詳細を表示します。これには、高レベルの評価、完了ステータス、期間の推定時間、またはクラスター Operator の正常性が含まれます。このセクションには、コントロールプレーンノードの更新情報が記載された表も表示されます。

    コントロールプレーンの更新セクションには、--details=operators フラグまたは --details-all フラグが使用されている場合に、更新中のクラスター Operator をリストする追加のテーブルも表示できます。OpenShift Container Platform の非同期分散性質により、更新中にこのセクションに Operator を複数回表示される場合や、全く表示されない場合があることに注意してください。このセクションは、Cluster Operator の更新が確認された場合にのみ表示されます。通常、特定の期間に Cluster Operator の更新がないことを確認するのは、通常です。実行されたすべてのアクションが監視可能な更新 Cluster Operator に割り当てられるわけではありません。

  • ワーカーノートの更新: ワーカーノードの更新情報を表示します。ワーカーノードセクションは、クラスターに設定される各ワーカープールに関する情報の概要を表示する表で始まります。空でないワーカープールの出力には、そのプールに属するノードに関する専用のテーブルリストの更新情報が表示されます。クラスターにワーカーノードがない場合、出力にはワーカーノードセクションは含まれません。ノードテーブルにはすべての行を表示するには、--details=nodes または-- details=all を使用します。
  • ヘルス Insights: 進行中の更新に関連する可能性のあるクラスターに存在する状態とイベントに関する洞察を表示します。use-- details=health を使用して、このセクションの項目を、ドキュメントリンク、より長いフォームの説明、または洞察に関連するクラスターリソースなど、より詳細な形式に展開できます。
注記

oc adm upgrade status コマンドは、現在ホストされたコントロールプレーンクラスターではサポートされていません。

以下は、更新の進捗が正常に進行することを示す出力の例です。

= Control Plane =
Assessment:      Progressing
Target Version:  4.17.1 (from 4.17.0)
Updating:        machine-config
Completion:      97% (32 operators updated, 1 updating, 0 waiting)
Duration:        54m (Est. Time Remaining: <10m)
Operator Status: 32 Healthy, 1 Unavailable

Control Plane Nodes
NAME                                        ASSESSMENT    PHASE      VERSION   EST    MESSAGE
ip-10-0-53-40.us-east-2.compute.internal    Progressing   Draining   4.17.0    +10m
ip-10-0-30-217.us-east-2.compute.internal   Outdated      Pending    4.17.0    ?
ip-10-0-92-180.us-east-2.compute.internal   Outdated      Pending    4.17.0    ?

= Worker Upgrade =

WORKER POOL   ASSESSMENT    COMPLETION   STATUS
worker        Progressing   0% (0/2)     1 Available, 1 Progressing, 1 Draining
infra         Progressing   50% (1/2)    1 Available, 1 Progressing, 1 Draining

Worker Pool Nodes: Worker
NAME                                       ASSESSMENT    PHASE      VERSION   EST    MESSAGE
ip-10-0-4-159.us-east-2.compute.internal   Progressing   Draining   4.17.0    +10m
ip-10-0-99-40.us-east-2.compute.internal   Outdated      Pending    4.17.0    ?

Worker Pool Nodes: infra
NAME                                             ASSESSMENT    PHASE      VERSION   EST    MESSAGE
ip-10-0-4-159-infra.us-east-2.compute.internal   Progressing   Draining   4.17.0    +10m
ip-10-0-20-162.us-east-2.compute.internal        Completed     Updated    4.17.1    -

= Update Health =
SINCE   LEVEL   IMPACT   MESSAGE
54m4s   Info    None     Update is proceeding well
Copy to Clipboard Toggle word wrap

3.1.6. CLI を使用した更新サーバーの変更

更新サーバーの変更は任意です。OpenShift Update Service (OSUS) がローカルにインストールされ、設定されている場合は、更新時にローカルサーバーを使用できるようにサーバーの URL を upstream として設定する必要があります。upstream のデフォルト値は https://api.openshift.com/api/upgrades_info/v1/graph です。

手順

  • クラスターバージョンで upstream パラメーター値を変更します。

    $ oc patch clusterversion/version --patch '{"spec":{"upstream":"<update-server-url>"}}' --type=merge
    Copy to Clipboard Toggle word wrap

    <update-server-url> 変数は、更新サーバーの URL を指定します。

    出力例

    clusterversion.config.openshift.io/version patched
    Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat