Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

制御プレーン ノードの置き換え

概要 OpenShift クラスター内の問題ノードを識別して置き換える方法について説明します。

コントロール プレーン ノードを交換するには、まず問題のあるノードを識別して削除する必要があります。問題のノードを削除した後、新しい置換ノードを追加できます。

ジュニパーは、情報提供を目的として、これらの手順の例を示しています。公式の手順については、Red Hat OpenShiftのドキュメント(https://docs.openshift.com/)をご覧ください。

不健全なコントロール プレーン ノードの削除

この手順を使用して、不健全な制御プレーン ノードを識別して削除します。
  1. コントロール プレーン ノードのステータスを確認して、問題のメンバーを識別します。
    この例では、ocp3 が正常でないノードです。
  2. Etcd データベースのバックアップの手順に従って、正常なノードの 1 つで etcd データベースをバックアップします
  3. etcd メンバーをリストします。
  4. 正常なノード(ocp1 など)の etcd ポッドにリモート シェルを開きます。
  5. etcd メンバーをリストします。
  6. 問題のノードで etcd メンバーを削除します。
  7. もう一度メンバー・リストを表示します。
  8. を入力exitしてリモート シェルを終了します。
  9. AIクライアントノードに戻り、問題などが含まれているメンバーの古い秘密を削除します。
    1. 問題(削除)メンバーのシークレットを一覧表示します。
    2. ピアシークレットを削除します。
    3. メトリックシークレットを削除します。
    4. サービスシークレットを削除します。
  10. 最後に、問題のノードを削除します。
    1. 問題ノードにコードを接続します。
    2. 問題のノードをドレインします。
    3. 問題のノードを削除します。
    4. ノードを一覧表示します。
    これで、問題のあるノードを特定して削除できました。

置き換えのコントロール プレーン ノードを追加します。

既存の OpenShift クラスターに置換コントロール プレーン ノードを追加するには、次の手順を実行します。OpenShift クラスターには、3 つのコントロール プレーン ノードが正確に含まれます。この手順を使用して、すでに 3 つの制御プレーン ノードを持つクラスタにノードを追加することはできません。

この手順は、遅延バインディングの例を示しています。遅延バインディングでは、ISO を生成し、その ISO でノードを起動します。ノードの起動後、ノードを既存のクラスタにバインドします。

これにより、1 つ以上の CertificateSigningRequests(CSR)が新しいノードから既存のクラスタに送信されます。CSRは、(既存の)クラスタのクライアント証明書を取得する単なるリクエストです。これらの要求を明示的に承認する必要があります。承認されると、既存のクラスタはクライアント証明書を新しいノードに提供し、新しいノードは既存のクラスタへの参加を許可されます。

  1. アシストインストーラークライアントとして使用しているマシン(VMまたはBMS)にログインします。Assisted Installer クライアント マシンは、Red Hat がホストするアシスト インストーラー サーバーに対して、Assisted Installer API 呼び出しを発行する場所です。
  2. 後のステップで使用する環境変数を設定して、導入を準備します。
    1. 既存のクラスタに使用するのと同じSSHキーを設定します。
      この例では、デフォルトの場所 ~/.ssh/id_rsa.pubからSSH キーを取得し、変数に格納します。
    2. イメージ プル シークレットがもうない場合は、Red Hat アカウントのイメージ プル シークレットをローカル コンピューターにダウンロードします。プル シークレットを使用すると、OpenShift コンポーネントのコンテナ イメージを提供するサービスとレジストリにインストールしてアクセスできます。

      Red Hat の Hosted Assisted Installer を使用している場合は、https://console.redhat.com/openshift/downloads ページからプル シークレット ファイル(プルシークレット)をダウンロードできます。プルシークレットファイルを Assisted Installer クライアント マシンにコピーします。この例では、プルシークレットを pull-secret.txt と呼ばれるファイルに格納しています。

      空白を取り除き、内容を JSON 文字列形式に変換し、次のように環境変数に保存します。

    3. オフライン アクセス トークンがなくなった場合は、Red Hat アカウントからオフライン アクセス トークンをコピーします。OpenShift クラスター マネージャー API トークンを使用すると、(支援インストーラー クライアント マシン上で)Red Hat がホストするアシスト インストーラー API サービスとやり取りできます。
      トークンは、ローカル環境変数にコピーアンドペーストできる文字列です。Red Hat のホスト型支援インストーラーを使用している場合は、 https://console.redhat.com/openshift/downloads から API トークンをコピーできます。
    4. OFFLINE_ACCESS_TOKENからトークンを生成(更新)します。この生成されたトークンは、API コマンドを発行するたびに使用します。
      メモ:

      このトークンは定期的に期限切れになります。このトークンの有効期限が切れると、API コマンドを発行するたびに HTTP 4xx 応答が返されます。期限切れになったときにトークンを更新するか、または期限切れ前に定期的にトークンを更新します。トークンが期限切れになったときにトークンを更新しても何の害もありません。

    5. 既存のクラスタの OpenShift クラスタ ID を取得します。
      例: 変数に保存します。
    6. 残りの環境変数を設定します。
      表 1 は、前のステップで説明したものも含め、この手順で設定する必要があるすべての環境変数を示しています。
      表 1: 環境変数
      変数の 説明 の例
      CLUSTER_SSHKEY 既存のクラスタに使用する(パブリック)SSHキー。追加する新しいノードにも同じキーを使用する必要があります。
      PULL_SECRET ダウンロードし、削除し、JSON 文字列形式に変換したシークレットを取得します。
      OFFLINE_ACCESS_TOKEN コピーした OpenShift クラスター マネージャー API トークン。
      トークン OFFLINE_ACCESS_TOKENから生成(更新)したトークン。
      CLUSTER_NAME 既存のクラスターの名前。 クラスタ
      CLUSTER_DOMAIN 既存のクラスターのベース ドメイン。 contrail.lan
      OS_CLUSTER_ID 既存のクラスターの OpenShift クラスター ID。 1777102a-1fe1-407a-9441-9d0bad4f5968
      AI_URL 支援インストーラー サービスの URL。この例では、Red Hat のホスト型支援インストーラーを使用します。 https://api.openshift.com
  3. ディスカバリーブート ISO を生成します。この ISO を使用して、クラスターに追加するノードを起動します。
    ISO は、設定するインフラストラクチャ環境に基づいてインフラストラクチャに合わせてカスタマイズされています。
    1. インフラストラクチャ環境を説明するファイルを作成します。この例では infra-jsons-addhost.jsonと名付けます
      どこ:
      • InfraEnv Name InfraEnv と呼ぶ名前です。
      • user_managed_networking 既存のクラスタと vip_dhcp_allocation 同じ値に設定されます。
    2. InfraEnv を登録します。これに応じて、アシストインストーラサービスはInfraEnv IDを割り当て、指定されたインフラストラクチャ環境に基づいてディスカバリーブートISOを構築します。

      InfraEnv を登録すると、支援インストーラー サービスから InfraEnv ID が返されます。応答に埋め込まれている InfraEnv ID を慎重に探してください。例えば:

      InfraEnv ID を変数に格納します。例えば:

    3. 画像のダウンロード URL を取得します。
      Assisted Installer サービスがイメージ URL を返します。
    4. ISO をダウンロードしてファイルに保存します。この例では、それをai-liveiso-addhosts.isoに保存します。
  4. ディスカバリーブート ISO で新しいノードを起動します。インフラストラクチャにとって最も便利なブート方法を選択します。Red Hat の Hosted Assisted Installer にアクセスできるネットワークに接続された新しいノードが起動していることを確認します。
    ホストのステータスを確認する: ホストIDを変数に格納します。
  5. 新しいノードを制御プレーン ノードとして設定します。
    応答に以下が埋め込まれているかどうかを確認します。
  6. 既存のクラスタをインポートします。

    クラスターをインポートすると、アシスト インストーラー サービスは AddHostsCluster のクラスター ID を返します。応答にクラスター ID が埋め込まれているのは注意して確認してください。例えば:

  7. AddHostsClusterのクラスタIDを参照して、新しいホストをクラスタにバインドします。
    ホストのステータスを定期的に確認します。 次の出力が表示されたら、次の手順に進みます。
  8. 新しいノードをインストールします。
    ノードのステータスを確認します 。ノードが再起動されたことを示す以下のステータスを探します。
  9. 新しいノードが再起動されると、既存のクラスタへの参加を試みます。これにより、1 つ以上の CertificateSigningRequests(CSR)が新しいノードから既存のクラスタに送信されます。CSR を承認する必要があります。
    1. CSR を確認します。
      例えば:

      保留中の CSR が表示されるまで、このコマンドを定期的に繰り返す必要があります。

    2. CSR を承認します。
      例えば:
  10. 新しいノードが稼働し、既存のクラスタで稼働していることを確認します。