エージェントベースのクラスタへのノードの追加

カスタマイズされたRed Hat Enterprise Linux CoreOS (RHCOS) ISOイメージを使用して、エージェントベースのインストーラで作成されたOpenShiftクラスタにワーカー・ノードを追加します。

  • マシン構成オペレータ・シークレットを読み取ることができるユーザーとして、ocコマンドを使用してクラスタにアクセスします。
  • ISOイメージの作成に使用するシステムにcoreos-installerをインストールします。
  • 新しいノードがワーカーIgnition構成をダウンロードするためにアクセスできるWebサーバーを指定します。
  • 新しい各ノードのターゲット・インストール・デバイスを特定します。このプロシージャでは、/dev/sdaを例として使用します。
  • レジストリ認証に使用できるプル・シークレットがあります。

このプロシージャは、Day 2 ISOイメージを作成し、そのカーネル引数をカスタマイズし、イメージを使用して新しいワーカー・ノードをプロビジョニングします。ノードは、インストール中に、指定されたWebサーバーからそのIgnition構成をダウンロードします。

ノート

Ignition構成のHTTP配信は、制御された環境でのみ使用してください。ネットワーク・セキュリティ・ルールにより、新しいノードがWebサーバーにアクセスできるようにしてください。
  1. ISOイメージの作成に使用されたシステムで、作業ディレクトリを作成し、レジストリ認証ファイルを設定します。
    export REGISTRY_AUTH_FILE=/home/opc/PullSecret.json
    export DIR=day2
    mkdir -p $DIR
    cd $DIR
  2. ワーカーのIgnition構成をクラスタからエクスポートします。
    oc -n openshift-machine-config-operator get secret worker-user-data \
    -o jsonpath='{.data.userData}' | base64 -d > worker.ign
  3. ワーカーIgnition構成を、新しいノードがアクセスできるWebサーバー・ディレクトリにコピーします。
    sudo mkdir -p /var/www/html/day2
    sudo cp worker.ign /var/www/html/day2/worker.ign
    sudo chmod 0644 /var/www/html/day2/worker.ign
  4. WebサーバーがIgnition構成を提供でき、構成が有効なJSONであることを確認します。
    curl -sS http://webserver/day2/worker.ign | head -n 2
    curl -sS http://webserver/day2/worker.ign | jq -e . >/dev/null && echo OK
  5. Day 2 ISOイメージを作成します。新しいノードのMACアドレスとターゲット・インストール・デバイスを指定します。
    oc adm node-image create \
    --mac-address=00:00:00:00:00:00 \
    --root-device-hint=deviceName:/dev/sda

    このコマンドは、node.x86_64.isoファイルを作成します。特定のホストのISOイメージを作成するときは、実際のMACアドレスを使用します。

  6. コンソール、デバッグ、ライブ環境、install-device、およびIgnition URLカーネル引数を使用してISOイメージをカスタマイズします。
    coreos-installer iso customize -f \
    --live-karg-append console=tty0 \
    --live-karg-append console=ttyS0,115200n8 \
    --live-karg-append rd.debug \
    --live-karg-append rd.live.ram=1 \
    --live-karg-append rd.live.overlay=none \
    --live-karg-append rd.luks=0 \
    --live-karg-append rd.lvm=0 \
    --live-karg-append rd.md=0 \
    --live-karg-append rd.dm=0 \
    --live-karg-append coreos.liveiso.fromram \
    --live-karg-append coreos.inst.install_dev=/dev/sda \
    --live-karg-append coreos.inst.ignition_url=http://webserver/day2/worker.ign \
    -o rhcos-auto-worker-oci-ram-debug-DAY2-1.iso \
    node.x86_64.iso
    ノート

    /dev/sdaおよびhttp://webserver/day2/worker.ignを、新しいノードおよび環境の値に置き換えます。
  7. カスタマイズされたISOイメージに埋め込まれたカーネル引数を確認します。
    coreos-installer iso kargs show rhcos-auto-worker-oci-ram-debug-DAY2-1.iso
  8. カスタマイズされたISOイメージをオブジェクト・ストレージにアップロードし、OCIカスタム・イメージを作成し、カスタム・イメージを使用するワーカー・インスタンスを作成します。

    OCIイメージのアップロード、カスタム・イメージおよびイメージ機能ステップは、OpenShift検出ISOイメージの作成を参照してください。インスタンスの作成手順は、インスタンスの作成を参照してください。

  9. 新しいノードで、カーネル引数とインストール・ログを確認します。
    cat /proc/cmdline
    journalctl -b -u coreos-installer -u ignition-*
  10. クラスタから、ノードのプロビジョニングおよび結合プロセスを監視します。
    oc adm node-image monitor --ip-addresses <node_IP_address>

    出力を使用して、Ignitionの取得、kubeletの起動、証明書署名リクエストの承認、または準備中にノードがブロックされるかどうかを識別します。