12.7. コントロールプレーンマシンセットのトラブルシューティング


このセクションの情報を使用して、発生する可能性のある問題を理解し、回復してください。

12.7.1. コントロールプレーンマシンセットのカスタムリソースの状態を確認する

ControlPlaneMachineSet カスタムリソース (CR) の存在と状態を確認できます。

手順

  • 次のコマンドを実行して、CR の状態を確認します。

    $ oc get controlplanemachineset.machine.openshift.io cluster \
      --namespace openshift-machine-api
    • Active の結果は、ControlPlaneMachineSet CR が存在し、アクティブ化されていることを示します。管理者の操作は必要ありません。
    • Inactive の結果は、ControlPlaneMachineSet CR が存在するがアクティブ化されていないことを示します。
    • NotFound の結果は、既存の ControlPlaneMachineSet CR がないことを示します。

次のステップ

コントロールプレーンマシンセットを使用するには、クラスターの正しい設定を持つ ControlPlaneMachineSet CR が存在することを確認する必要があります。

  • クラスターに既存の CR がある場合は、CR の設定がクラスターに対して正しいことを確認する必要があります。
  • クラスターに既存の CR がない場合は、クラスターの正しい設定で CR を作成する必要があります。

12.7.2. 不足している Azure 内部ロードバランサーの追加

Azure の ControlPlaneMachineSet とコントロールプレーン Machine のカスタムリソース (CR) の両方で internalLoadBalancer パラメーターが必要です。このパラメーターがクラスターで事前設定されていない場合は、両方の CR に追加する必要があります。

このパラメーターが Azure プロバイダー仕様のどこにあるかの詳細は、サンプルの Azure プロバイダー仕様を参照してください。コントロールプレーン Machine CR での配置も同様です。

手順

  1. 次のコマンドを実行して、クラスター内のコントロールプレーンマシンを一覧表示します。

    $ oc get machines \
      -l machine.openshift.io/cluster-api-machine-role==master \
      -n openshift-machine-api
  2. コントロールプレーンマシンごとに、次のコマンドを実行して CR を編集します。

    $ oc edit machine <control_plane_machine_name>
  3. クラスターの正しい詳細を含む internalLoadBalancer パラメーターを追加し、変更を保存します。
  4. 次のコマンドを実行して、コントロールプレーンマシンセットの CR を編集します。

    $ oc edit controlplanemachineset.machine.openshift.io cluster \
      -n openshift-machine-api
  5. クラスターの正しい詳細を含む internalLoadBalancer パラメーターを追加し、変更を保存します。

次のステップ

  • デフォルトの RollingUpdate 更新戦略を使用するクラスターの場合、Operator は自動的に変更をコントロールプレーン設定に伝達します。
  • OnDelete 更新戦略を使用するように設定されているクラスターの場合、コントロールプレーンマシンを手動で置き換える必要があります。

12.7.3. 劣化した etcd Operator のリカバリー

特定の状況では、etcd Operator が劣化する可能性があります。

たとえば、修復の実行中に、マシンのヘルスチェックによって、etcd をホストしているコントロールプレーンマシンが削除される場合があります。その時点で etcd メンバーにアクセスできない場合、etcd Operator は劣化します。

etcd Operator が劣化している場合、Operator に障害のあるメンバーを強制的に削除させ、クラスターの状態を復元させるには、手動の介入が必要です。

手順

  1. 次のコマンドを実行して、クラスター内のコントロールプレーンマシンを一覧表示します。

    $ oc get machines \
      -l machine.openshift.io/cluster-api-machine-role==master \
      -n openshift-machine-api \
      -o wide

    次のいずれかの状態は、コントロールプレーンマシンの障害を示している可能性があります。

    • STATE 値は stopped です。
    • PHASE 値は Failed です。
    • PHASE 値が 10 分以上 Deleting です。
    重要

    続行する前に、クラスターに 2 つの正常なコントロールプレーンマシンがあることを確認します。この手順のアクションを複数のコントロールプレーンマシンで実行すると、etcd クォーラムが失われるリスクがあり、データが失われる可能性があります。

    大多数のコントロールプレーンホストが失われ、etcd のクォーラム (定足数) の損失が発生した場合は、この手順ではなく、「直前のクラスター状態への復元に向けた障害復旧」手順を実行する必要があります。

  2. 次のコマンドを実行して、障害が発生したコントロールプレーンマシンのマシン CR を編集します。

    $ oc edit machine <control_plane_machine_name>
  3. 障害が発生したコントロールプレーンマシンから lifecycleHooks パラメーターの内容を削除し、変更を保存します。

    etcd Operator は、障害が発生したマシンをクラスターから削除し、新しい etcd メンバーを安全に追加できるようにします。

12.7.4. RHOSP 上で実行されるクラスターのアップグレード

OpenShift Container Platform 4.13 以前で作成された Red Hat OpenStack Platform (RHOSP) 上で実行されるクラスターの場合は、コントロールプレーンマシンセットを使用する前にアップグレード後のタスクを実行する必要がある場合があります。

12.7.4.1. アップグレード後のルートボリュームアベイラビリティーゾーンを持つマシンを含む RHOSP クラスターの設定

アップグレードする Red Hat OpenStack Platform (RHOSP) 上で実行する一部のクラスターでは、次の設定に該当する場合、コントロールプレーンマシンセットを使用する前に、マシンリソースを手動で更新する必要があります。

  • アップグレードされたクラスターは、OpenShift Container Platform 4.13 以前で作成されました。
  • クラスターインフラストラクチャーはインストーラーによってプロビジョニングされます。
  • マシンは複数のアベイラビリティーゾーンに分散されました。
  • マシンは、ブロックストレージのアベイラビリティーゾーンが定義されていないルートボリュームを使用するように設定されていました。

この手順が必要な理由を理解するには、Solution #7024383 を参照してください。

手順

  1. すべてのコントロールプレーンマシンについて、環境に一致するすべてのコントロールプレーンマシンのプロバイダー仕様を編集します。たとえば、マシン master-0 を編集するには、次のコマンドを入力します。

    $ oc edit machine/<cluster_id>-master-0 -n openshift-machine-api

    ここでは、以下のようになります。

    <cluster_id>
    アップグレードされたクラスターの ID を指定します。
  2. プロバイダー仕様で、プロパティー rootVolume.availabilityZone の値を、使用するアベイラビリティーゾーンのボリュームに設定します。

    RHOSP プロバイダー仕様の例

    providerSpec:
      value:
        apiVersion: machine.openshift.io/v1alpha1
        availabilityZone: az0
          cloudName: openstack
        cloudsSecret:
          name: openstack-cloud-credentials
          namespace: openshift-machine-api
        flavor: m1.xlarge
        image: rhcos-4.14
        kind: OpenstackProviderSpec
        metadata:
          creationTimestamp: null
        networks:
        - filter: {}
          subnets:
          - filter:
              name: refarch-lv7q9-nodes
              tags: openshiftClusterID=refarch-lv7q9
        rootVolume:
            availabilityZone: nova 1
            diskSize: 30
            sourceUUID: rhcos-4.12
            volumeType: fast-0
        securityGroups:
        - filter: {}
          name: refarch-lv7q9-master
        serverGroupName: refarch-lv7q9-master
        serverMetadata:
          Name: refarch-lv7q9-master
          openshiftClusterID: refarch-lv7q9
        tags:
        - openshiftClusterID=refarch-lv7q9
        trunk: true
        userDataSecret:
          name: master-user-data

    1
    ゾーン名をこの値として設定します。
    注記

    最初のクラスターデプロイメント後にマシンリソースを編集または再作成した場合は、これらの手順を設定に合わせて調整が必要になる場合があります。

    RHOSP クラスターで、マシンのルートボリュームのアベイラビリティーゾーンを見つけて、それを値として使用します。

  3. 次のコマンドを実行して、コントロールプレーンマシンセットリソースに関する情報を取得します。

    $ oc describe controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
  4. 以下のコマンドを実行してリソースを編集します。

    $ oc edit controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
  5. そのリソースについて、spec.state プロパティーの値を Active に設定して、クラスターのコントロールプレーンマシンセットをアクティブにします。

コントロールプレーンは、Cluster Control Plane Machine Set Operator によって管理される準備が整いました。

12.7.4.2. アップグレード後のアベイラビリティーゾーンを備えたコントロールプレーンマシンを含む RHOSP クラスターの設定

アップグレードする Red Hat OpenStack Platform (RHOSP) 上で実行する一部のクラスターでは、次の設定に該当する場合、コントロールプレーンマシンセットを使用する前に、マシンリソースを手動で更新する必要があります。

  • アップグレードされたクラスターは、OpenShift Container Platform 4.13 以前で作成されました。
  • クラスターインフラストラクチャーはインストーラーによってプロビジョニングされます。
  • コントロールプレーンマシンは、複数のコンピュートアベイラビリティーゾーンに分散されました。

この手順が必要な理由を理解するには、Solution #7013893 を参照してください。

手順

  1. master-1 および master-2 コントロールプレーンマシンの場合は、プロバイダー仕様を開いて編集します。たとえば、最初のマシンを編集するには、次のコマンドを入力します。

    $ oc edit machine/<cluster_id>-master-1 -n openshift-machine-api

    ここでは、以下のようになります。

    <cluster_id>
    アップグレードされたクラスターの ID を指定します。
  2. master-1 および master-2 コントロールプレーンマシンの場合は、プロバイダー仕様の serverGroupName プロパティーの値を編集して、マシン master-0 の値と一致させます。

    RHOSP プロバイダー仕様の例

    providerSpec:
      value:
        apiVersion: machine.openshift.io/v1alpha1
        availabilityZone: az0
          cloudName: openstack
        cloudsSecret:
          name: openstack-cloud-credentials
          namespace: openshift-machine-api
        flavor: m1.xlarge
        image: rhcos-4.16
        kind: OpenstackProviderSpec
        metadata:
          creationTimestamp: null
        networks:
        - filter: {}
          subnets:
          - filter:
              name: refarch-lv7q9-nodes
              tags: openshiftClusterID=refarch-lv7q9
        securityGroups:
        - filter: {}
          name: refarch-lv7q9-master
        serverGroupName: refarch-lv7q9-master-az0 1
        serverMetadata:
          Name: refarch-lv7q9-master
          openshiftClusterID: refarch-lv7q9
        tags:
        - openshiftClusterID=refarch-lv7q9
        trunk: true
        userDataSecret:
          name: master-user-data

    1
    この値は、マシン master-0master-1、および master-3 と一致する必要があります。
    注記

    最初のクラスターデプロイメント後にマシンリソースを編集または再作成した場合は、これらの手順を設定に合わせて調整が必要になる場合があります。

    RHOSP クラスターで、コントロールプレーンインスタンスが含まれるサーバーグループを見つけて、それを値として使用します。

  3. 次のコマンドを実行して、コントロールプレーンマシンセットリソースに関する情報を取得します。

    $ oc describe controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
  4. 以下のコマンドを実行してリソースを編集します。

    $ oc edit controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
  5. そのリソースについて、spec.state プロパティーの値を Active に設定して、クラスターのコントロールプレーンマシンセットをアクティブにします。

コントロールプレーンは、Cluster Control Plane Machine Set Operator によって管理される準備が整いました。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.