2.4. OpenShift Container Platform 4.18 から新しいバージョンへの更新の準備


OpenShift Container Platform 4.18 から新しいバージョンに更新する前に、Red Hat Enterprise Linux (RHEL)コンピュートマシンおよびゲートウェイ API ネットワークリソースに関する具体的な懸念点について確認してください。

2.4.1. パッケージベースの RHEL ワーカーノードからのワークロード移行

OpenShift Container Platform 4.19 の導入に伴い、パッケージベースの RHEL ワーカーノードがサポートされなくなります。該当するノードが稼働している間にクラスターを更新しようとすると、更新が失敗します。

ノードセレクターを使用すると、RHEL コンピュートノードで実行中の Pod を、代わりに RHCOS ノードで実行するように再スケジュールできます。

たとえば、次の Node オブジェクトには、オペレーティングシステム情報 (この場合は RHCOS) のラベルがあります。

RHCOS のラベルを含む Node オブジェクトのサンプル

kind: Node
apiVersion: v1
metadata:
  name: ip-10-0-131-14.ec2.internal
  selfLink: /api/v1/nodes/ip-10-0-131-14.ec2.internal
  uid: 7bc2580a-8b8e-11e9-8e01-021ab4174c74
  resourceVersion: '478704'
  creationTimestamp: '2019-06-10T14:46:08Z'
  labels:
    kubernetes.io/os: linux
    failure-domain.beta.kubernetes.io/zone: us-east-1a
    node.openshift.io/os_version: '4.18'
    node-role.kubernetes.io/worker: ''
    failure-domain.beta.kubernetes.io/region: us-east-1
    node.openshift.io/os_id: rhcos 
1

    beta.kubernetes.io/instance-type: m4.large
    kubernetes.io/hostname: ip-10-0-131-14
    beta.kubernetes.io/arch: amd64
#...
Copy to Clipboard Toggle word wrap

1
ノードで実行されるオペレーティングシステムを識別し、Pod のノードセレクターに一致するラベル。

Pod を新しい RHCOS ノードにスケジュールするには、Pod の nodeSelector フィールドに一致するラベルが含まれている必要があります。次の手順では、ラベルを追加する方法を説明します。

手順

  1. 次のコマンドを入力して、既存の Pod を現在実行している RHEL ノードをスケジューリング対象から除外します。

    $ oc adm cordon <rhel-node>
    Copy to Clipboard Toggle word wrap
  2. Pod に rhcos ノードセレクターを追加します。

    • 既存および将来の Pod にノードセレクターを追加するには、次のコマンドを入力して、Pod のコントローラーオブジェクトにノードセレクターを追加します。

      rhcos ラベルを含む Deployment オブジェクトの例

      $ oc patch dc <my-app> -p '{"spec":{"template":{"spec":{"nodeSelector":{"node.openshift.io/os_id":"rhcos"}}}}}'
      Copy to Clipboard Toggle word wrap

      Deployment 制御オブジェクト配下にある既存の Pod が、RHCOS ノード上に再作成されます。

    • 特定の新しい Pod にノードセレクターを追加するには、セレクターを Pod オブジェクトに直接追加します。

      rhcos ラベルを含む Pod オブジェクトの例

      apiVersion: v1
      kind: Pod
      metadata:
        name: <my-app>
      #...
      spec:
        nodeSelector:
          node.openshift.io/os_id: rhcos
      #...
      Copy to Clipboard Toggle word wrap

      Pod にも制御オブジェクトがある場合、新しい Pod は RHCOS ノードに作成されます。

2.4.2. RHEL ワーカーノードの特定と削除

OpenShift Container Platform 4.19 の導入に伴い、パッケージベースの RHEL ワーカーノードがサポートされなくなります。次の手順では、ベアメタルインストール環境のクラスターを削除するために RHEL ノードを特定する方法を説明します。クラスターを正常に更新するには、次の手順を完了する必要があります。

手順

  1. 次のコマンドを入力して、クラスター内で RHEL を実行しているノードを特定します。

    $ oc get -l node.openshift.io/os_id=rhel
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                        STATUS    ROLES     AGE       VERSION
    rhel-node1.example.com      Ready     worker    7h        v1.31.7
    rhel-node2.example.com      Ready     worker    7h        v1.31.7
    rhel-node3.example.com      Ready     worker    7h        v1.31.7
    Copy to Clipboard Toggle word wrap

  2. ノード削除プロセスに進みます。RHEL ノードは Machine API によって管理されず、コンピュートマシンセットが関連付けられていません。手動でクラスターからノードを削除する前に、ノードをスケジューリング対象から除外して drain (Pod の退避) を実行する必要があります。

    このプロセスの詳細は、How to remove a worker node from Red Hat OpenShift Container Platform 4 UPI を参照してください。

2.4.3. 新しい RHCOS ワーカーノードのプロビジョニング

ワークロードに追加のコンピュートノードが必要な場合は、クラスターを更新する前または更新した後に新しいノードをプロビジョニングできます。詳細は、次の マシン管理 ドキュメントを参照してください。

installer-provisioned infrastructure インストールの場合、自動スケーリングによってデフォルトで RHCOS ノードが追加されます。ベアメタルプラットフォーム上の user-provisioned infrastructure インストールの場合、RHCOS コンピュートノードをクラスターに手動で追加 できます。

2.4.4. Ingress Operator による Gateway API 管理継承の準備

OpenShift Container Platform 4.19 以降、Ingress Operator は Gateway API カスタムリソース定義 (CRD) のライフサイクルを管理します。この管理が存在しなかった OpenShift Container Platform 4.19 より前のバージョンから更新するには、Ingress Operator が必要とする特定の OpenShift Container Platform 仕様に準拠するように、クラスターにすでに存在する Gateway API CRD を置き換えるか、削除する必要があります。OpenShift Container Platform バージョン 4.19 には、ゲートウェイ API 標準バージョン 1.2.0 CRD が必要です。

警告

Gateway API リソースを更新または削除すると、サービスまたはデータのダウンタイムや損失が発生する可能性があります。この手順を実行する前に、これによるクラスターへの影響を理解する必要があります。必要な場合は、後で復元するために、Gateway API オブジェクトを YAML 形式でバックアップします。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • クラスター管理者のアクセスを持つ OpenShift Container Platform アカウントを使用できる。
  • オプション: 必要な Gateway API オブジェクトをバックアップしている。

手順

  1. 次のコマンドを実行して、削除する必要のあるすべての Gateway API CRD をリスト表示します。

    $ oc get crd | grep "gateway.networking"
    Copy to Clipboard Toggle word wrap

    出力例

    gatewayclasses.gateway.networking.k8s.io
    gateways.gateway.networking.k8s.io
    grpcroutes.gateway.networking.k8s.io
    httproutes.gateway.networking.k8s.io
    referencegrants.gateway.networking.k8s.io
    Copy to Clipboard Toggle word wrap

  2. 以下のコマンドを実行して、直前の手順の Gateway API CRD を削除します。

    $ oc delete crd gatewayclasses.networking.k8s.io && \
    oc delete crd gateways.networking.k8s.io && \
    oc delete crd grpcroutes.gateway.networking.k8s.io && \
    oc delete crd httproutes.gateway.networking.k8s.io && \
    oc delete crd referencesgrants.gateway.networking.k8s.io
    Copy to Clipboard Toggle word wrap
    重要

    Gateway API CRD のライフサイクルをこれまで管理していたコントローラーは、すべて適切に動作しなくなります。Ingress Operator と組み合わせて強制的に使用し、Gateway API CRD を管理しようとすると、クラスターの更新が成功しない可能性があります。

  3. 次のコマンドを実行して、サポートされている Gateway API CRD を取得します。

    $ oc apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/standard-install.yaml
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat