第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 を更新することで、デフォルトの OperatorHub カタログが、クラスターの更新時に現行のマイナーバージョンから次のマイナーバージョンに切り替わる際、確実に有効な更新パスがあるようにします。インストール済み Operator の更新 を参照し、互換性を確認する方法の詳細を確認して、インストールされている Operator を必要に応じて更新してください。
  • すべてのマシン設定プール (MCP) が実行中であり、一時停止していないことを確認します。一時停止した MCP に関連付けられたノードは、更新プロセス中にスキップされます。カナリアロールアウト更新ストラテジーを実行している場合は、MCP を一時停止できる。
  • クラスターが手動で維持された認証情報を使用している場合は、新しいリリース用にクラウドプロバイダーリソースを更新します。これがクラスターの要件かどうかを判断する方法などの詳細は、手動で維持された認証情報でクラスターを更新する準備 を参照してください。
  • クラスターで次のマイナーバージョンへの更新ができるように、すべての Upgradeable=False 条件に対応してください。アラートは、アップグレードできない 1 つ以上のクラスター Operator がある場合に Cluster Settings ページの上部に表示されます。引き続き、現在使用しているマイナーリリースについて、次に利用可能なパッチ更新に更新できます。
  • Kubernetes 1.28 で削除された API のリストを確認し、影響を受けるすべてのコンポーネントを移行して新しい API バージョンを使用し、管理者に承認を提供します。詳細は、OpenShift Container Platform 4.16 への更新の準備 を参照してください。
  • Operator を実行している場合、または Pod 中断バジェットを使用してアプリケーションを設定している場合は、更新プロセス中に中断が発生する可能性があります。PodDisruptionBudget で minAvailable が 1 に設定されている場合、削除 プロセスをブロックする可能性がある保留中のマシン設定を適用するためにノードがドレインされます。複数のノードが再起動された場合に、すべての Pod が 1 つのノードでのみ実行される可能性があり、PodDisruptionBudget フィールドはノードのドレインを防ぐことができます。
重要
  • 更新が完了しなかった場合、Cluster Version Operator (CVO) は、更新の調整を試みている間、ブロックしているコンポーネントのステータスを報告します。クラスターの以前のバージョンへのロールバックはサポートされていません。更新が完了しない場合は、Red Hat サポートにお問い合わせください。
  • unsupportedConfigOverrides セクションを使用して Operator の設定を変更することはサポートされておらず、クラスターの更新をブロックする可能性があります。クラスターを更新する前に、この設定を削除する必要があります。

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

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

前提条件

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

手順

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

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

    $ oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused=""

    アノテーション付きの 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
    重要

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

    $ oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused-

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

    出力例

    Cluster version is 4.13.10
    Upstream is unset, so the cluster will use an appropriate default.
    Channel: stable-4.13 (available channels: candidate-4.13, candidate-4.14, fast-4.13, stable-4.13)
    Recommended updates:
      VERSION     IMAGE
      4.13.14     quay.io/openshift-release-dev/ocp-release@sha256:406fcc160c097f61080412afcfa7fd65284ac8741ac7ad5b480e304aba73674b
      4.13.13     quay.io/openshift-release-dev/ocp-release@sha256:d62495768e335c79a215ba56771ff5ae97e3cbb2bf49ed8fb3f6cefabcdc0f17
      4.13.12     quay.io/openshift-release-dev/ocp-release@sha256:73946971c03b43a0dc6f7b0946b26a177c2f3c9d37105441315b4e3359373a55
      4.13.11     quay.io/openshift-release-dev/ocp-release@sha256:e1c2377fdae1d063aaddc753b99acf25972b6997ab9a0b7e80cfef627b9ef3dd

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

    $ oc adm upgrade channel <channel>

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

    $ oc adm upgrade channel stable-4.16
    重要

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

    注記

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

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

  3. 更新を適用します。

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

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

      $ oc adm upgrade --to=<version> 1
      1 1
      <version> は、oc adm upgrade コマンドの出力から取得した更新バージョンです。
      重要

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

  4. クラスターバージョン Operator を確認します。

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

    $ oc adm upgrade

    出力例

    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.

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

    $ oc get nodes

    出力例

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

3.1.5. oc adm upgrade status を使用してクラスターの更新に関する情報を取得する (テクノロジープレビュー)

クラスターを更新するときは、更新の進行状況を把握しておくと役立ちます。oc adm upgrade コマンドは更新のステータスに関する限定的な情報を返しますが、このリリースでは oc adm upgrade status コマンドがテクノロジープレビュー機能として導入されています。このコマンドは、oc adm upgrade コマンドからステータス情報を分離し、コントロールプレーンのステータスやワーカーノードの更新など、クラスターの更新に関する特定の情報を提供します。

oc adm upgrade status コマンドは読み取り専用であり、クラスターの状態を変更することはありません。

重要

oc adm upgrade status コマンドはテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

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

重要

クラスターはテクノロジープレビュー対応のクラスターである必要はありませんが、OC_ENABLE_CMD_UPGRADE_STATUS テクノロジープレビュー環境変数を有効にする必要があります。有効にしないと、OpenShift CLI (oc) がコマンドを認識せず、機能を使用できなくなります。

手順

  1. 次のコマンドを実行して、OC_ENABLE_CMD_UPGRADE_STATUS 環境変数を true に設定します。

    $ export OC_ENABLE_CMD_UPGRADE_STATUS=true
  2. oc adm upgrade status コマンドを実行します。

    $ oc adm upgrade status

    例3.1 更新が正常に進行した場合の出力例

    = Control Plane =
    Assessment:      Progressing
    Target Version:  4.14.1 (from 4.14.0)
    Completion:      97%
    Duration:        54m
    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.14.0    +10m
    ip-10-0-30-217.us-east-2.compute.internal   Outdated      Pending    4.14.0    ?
    ip-10-0-92-180.us-east-2.compute.internal   Outdated      Pending    4.14.0    ?
    
    = Worker Upgrade =
    
    = Worker Pool =
    Worker Pool:     worker
    Assessment:      Progressing
    Completion:      0%
    Worker Status:   3 Total, 2 Available, 1 Progressing, 3 Outdated, 1 Draining, 0 Excluded, 0 Degraded
    
    Worker Pool Nodes
    NAME                                        ASSESSMENT    PHASE      VERSION   EST    MESSAGE
    ip-10-0-4-159.us-east-2.compute.internal    Progressing   Draining   4.14.0    +10m
    ip-10-0-20-162.us-east-2.compute.internal   Outdated      Pending    4.14.0    ?
    ip-10-0-99-40.us-east-2.compute.internal    Outdated      Pending    4.14.0    ?
    
    = Worker Pool =
    Worker Pool:     infra
    Assessment:      Progressing
    Completion:      0%
    Worker Status:   1 Total, 0 Available, 1 Progressing, 1 Outdated, 1 Draining, 0 Excluded, 0 Degraded
    
    Worker Pool Node
    NAME                                             ASSESSMENT    PHASE      VERSION   EST    MESSAGE
    ip-10-0-4-159-infra.us-east-2.compute.internal   Progressing   Draining   4.14.0    +10m
    
    = Update Health =
    SINCE   LEVEL   IMPACT   MESSAGE
    14m4s   Info    None     Update is proceeding well

    この情報を利用して、更新をどのように進めるかについて十分な情報に基づいた決定を下すことができます。

3.1.6. 条件付き更新パスに沿った更新

Web コンソールまたは OpenShift CLI (oc) を使用して、推奨される条件付き更新パスに沿って更新できます。クラスターで条件付き更新が推奨されない場合は、OpenShift CLI (oc) 4.10 以降を使用して条件付き更新パスに沿って更新できます。

手順

  1. リスクが適用される可能性があるため推奨されない場合に更新の説明を表示するには、次のコマンドを実行します。

    $ oc adm upgrade --include-not-recommended
  2. クラスター管理者が潜在的な既知のリスクを評価し、それが現在のクラスターに受け入れられると判断した場合、管理者は次のコマンドを実行して安全ガードを放棄し、更新を続行できます。

    $ oc adm upgrade --allow-not-recommended --to <version> <.>

    <.> <version> は、前のコマンドの出力から取得した更新バージョンです。サポートされていますが、既知の問題やリスクもあります。

3.1.7. 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

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

    出力例

    clusterversion.config.openshift.io/version patched

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.