12.3. Agent-based Installer を使用した OpenShift Container Platform クラスターのインストール


以下の手順に従って、Agent-based Installer を使用して、OpenShift Container Platform クラスターをインストールします。

12.3.1. 前提条件

12.3.2. Agent-based Installer を使用した OpenShift Container Platform のインストール

以下の手順では、切断された環境でシングルノードの OpenShift Container Platform をデプロイします。これらの手順を基本として使用し、必要に応じて変更できます。

12.3.2.1. エージェントベースのインストーラーのダウンロード

手順

この手順を使用して、インストールに必要なエージェントベースのインストーラーと CLI をダウンロードします。

  1. ログイン認証情報を使用して OpenShift Container Platform Web コンソールにログインします。
  2. データセンター に移動します。
  3. Run Agent-based Installer locally をクリックします。
  4. OpenShift インストーラーコマンドラインインターフェイス のオペレーティングシステムとアーキテクチャーを選択します。
  5. Download Installer をクリックして、インストールプログラムをダウンロードして展開します。
  6. Download pull secret または Copy pull secret をクリックして、プルシークレットをダウンロードまたはコピーします。
  7. Download command-line tools をクリックし、openshift-install バイナリーを PATH 上のディレクトリーに配置します。

12.3.2.2. 優先設定入力の作成

この手順を使用して、エージェントイメージの作成に使用される優先設定入力を作成します。

手順

  1. 以下のコマンドを実行して nmstate の依存関係をインストールします。

    $ sudo dnf install /usr/bin/nmstatectl -y
    Copy to Clipboard Toggle word wrap
  2. PATH にあるディレクトリーに openshift-install バイナリーを配置します。
  3. 次のコマンドを実行して、インストール設定を保存するディレクトリーを作成します。

    $ mkdir ~/<directory_name>
    Copy to Clipboard Toggle word wrap
    注記

    これは、エージェントベースのインストールで推奨される方法です。GitOps ZTP マニフェストの使用はオプションです。

  4. 次のコマンドを実行して、install-config.yaml ファイルを作成します。

    $ cat << EOF > ./my-cluster/install-config.yaml
    apiVersion: v1
    baseDomain: test.example.com
    compute:
    - architecture: amd64 
    1
    
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      replicas: 1
    metadata:
      name: sno-cluster 
    2
    
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      machineNetwork:
      - cidr: 192.168.0.0/16
      networkType: OVNKubernetes 
    3
    
      serviceNetwork:
      - 172.30.0.0/16
    platform:
      none: {}
    pullSecret: '<pull_secret>' 
    4
    
    sshKey: '<ssh_pub_key>' 
    5
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    システムアーキテクチャーを指定します。有効な値は amd64arm64 です。
    2
    必須。クラスター名を指定します。
    3
    インストールするクラスターネットワークプラグインを指定します。サポートされている値は OVNKubernetesOpenShiftSDN です。デフォルトの値は OVNkubernetes です。
    4
    プルシークレットを指定します。
    5
    SSH 公開鍵を指定します。
    注記

    プラットフォームを vSphere または baremetal に設定すると、クラスターノードの IP アドレスエンドポイントを次の 3 つの方法で設定できます。

    • IPv4
    • IPv6
    • IPv4 と IPv6 の並列 (デュアルスタック)

    IPv6 は、ベアメタルプラットフォームでのみサポートされます。

    デュアルスタックネットワーキングの例

    networking:
      clusterNetwork:
        - cidr: 172.21.0.0/16
          hostPrefix: 23
        - cidr: fd02::/48
          hostPrefix: 64
      machineNetwork:
        - cidr: 192.168.11.0/16
        - cidr: 2001:DB8::/32
      serviceNetwork:
        - 172.22.0.0/16
        - fd03::/112
      networkType: OVNKubernetes
    platform:
      baremetal:
        apiVIPs:
        - 192.168.11.3
        - 2001:DB8::4
        ingressVIPs:
        - 192.168.11.4
        - 2001:DB8::5
    Copy to Clipboard Toggle word wrap

    注記

    非接続ミラーレジストリーを使用する場合は、作成済みのミラーレジストリー用の証明書ファイルを install-config.yaml ファイルの additionalTrustBundle フィールドに追加する必要があります。

  5. 次のコマンドを実行して、agent-config.yaml ファイルを作成します。

    $ cat > agent-config.yaml << EOF
    apiVersion: v1alpha1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80 
    1
    
    hosts: 
    2
    
      - hostname: master-0 
    3
    
        interfaces:
          - name: eno1
            macAddress: 00:ef:44:21:e6:a5
        rootDeviceHints: 
    4
    
          deviceName: /dev/sdb
        networkConfig: 
    5
    
          interfaces:
            - name: eno1
              type: ethernet
              state: up
              mac-address: 00:ef:44:21:e6:a5
              ipv4:
                enabled: true
                address:
                  - ip: 192.168.111.80
                    prefix-length: 23
                dhcp: false
          dns-resolver:
            config:
              server:
                - 192.168.111.1
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 192.168.111.2
                next-hop-interface: eno1
                table-id: 254
    EOF
    Copy to Clipboard Toggle word wrap
    1
    この IP アドレスは、ブートストラッププロセスを実行するノードや、assisted-service コンポーネントを実行するノードを判別するために使用されます。networkConfig パラメーターで少なくとも 1 つのホストの IP アドレスを指定しない場合は、ランデブー IP アドレスを指定する必要があります。このアドレスが指定されていない場合、指定されたホストの networkConfig から 1 つの IP アドレスが選択されます。
    2
    オプション: ホスト設定。定義されたホストの数は、install-config.yaml ファイルで定義されたホストの総数 (compute.replicas および controlPlane.replicas パラメーターの値の合計) を超えてはなりません。
    3
    オプション: 動的ホスト設定プロトコル (DHCP) または逆引き DNS ルックアップから取得したホスト名をオーバーライドします。各ホストには、これらの方法のいずれかによって提供される一意のホスト名が必要です。
    4
    特定デバイスへの Red Hat Enterprise Linux CoreOS (RHCOS) イメージのプロビジョニングを有効にします。これは、検出順にデバイスを検査し、検出された値をヒントの値と比較します。ヒントの値と一致する最初に検出されたデバイスが使用されます。
    5
    オプション: ホストのネットワークインターフェイスを NMState 形式で設定します。

12.3.2.3. ZTP マニフェストの使用

オプションのタスクとして、GitOps Zero Touch Provisioning (ZTP) マニフェストを使用して、install-config.yaml および agent-config.yaml ファイルで使用できるオプションを超えてインストールを設定できます。

注記

GitOps ZTP マニフェストは、事前に install-config.yaml ファイルと agent-config.yamlファイルを設定したかどうかにかかわらず生成できます。install-config.yaml ファイルと agent-config.yaml ファイルを設定することを選択した場合、設定は生成時に ZTP クラスターマニフェストにインポートされます。

前提条件

  • 使用する PATH 上のディレクトリーに openshift-install バイナリーを配置している。
  • オプション: install-config.yaml ファイルと agent-config.yaml ファイルを作成し、設定している。

手順

  1. 次のコマンドを実行して、ZTP クラスターマニフェストを生成します。

    $ openshift-install agent create cluster-manifests --dir <installation_directory>
    Copy to Clipboard Toggle word wrap
    重要

    install-config.yaml ファイルと agent-config.yaml ファイルを作成した場合、それらのファイルは削除され、このコマンドで生成されたクラスターマニフェストに置き換えられます。

    install-config.yaml ファイルと agent-config.yaml ファイルに対して行われた設定は、openshift-install agent create cluster-manifests コマンドを実行すると ZTP クラスターマニフェストにインポートされます。

  2. 次のコマンドを実行して、cluster-manifests ディレクトリーに移動します。

    $ cd <installation_directory>/cluster-manifests
    Copy to Clipboard Toggle word wrap
  3. cluster-manifests ディレクトリー内のマニフェストファイルを設定します。サンプルファイルの詳細は、「サンプル GitOps ZTP カスタムリソース」セクションを参照してください。
  4. 非接続クラスター: ZTP マニフェストを生成する前に install-config.yaml ファイルでミラー設定を定義しなかった場合は、次の手順を実行します。

    1. 次のコマンドを実行して、mirror ディレクトリーに移動します。

      $ cd ../mirror
      Copy to Clipboard Toggle word wrap
    2. mirror ディレクトリーにマニフェストファイルを設定します。

12.3.2.4. エージェントイメージの作成と起動

この手順を使用して、マシンでエージェントイメージを起動します。

手順

  1. 以下のコマンドを実行して agent イメージを作成します。

    $ openshift-install --dir <install_directory> agent create image
    Copy to Clipboard Toggle word wrap
    注記

    Red Hat Enterprise Linux CoreOS (RHCOS) はプライマリーディスクでのマルチパスをサポートするようになり、ハードウェア障害に対する対障害性が強化され、ホストの可用性を強化できるようになりました。マルチパス化は、デフォルトの /etc/multipath.conf 設定を使用して、agent.iSO イメージでデフォルトで有効になっています。

  2. ベアメタルマシンで agent.x86_64.iso または agent.aarch64.iso イメージを起動します。

12.3.2.5. 現在のインストールホストがリリースイメージをプルできることを確認する

エージェントイメージを起動し、ネットワークサービスがホストで利用可能になると、エージェントコンソールアプリケーションは、プルチェックを実行して、現在のホストがリリースイメージを取得できることを確認します。

一次プルチェックに合格した場合は、アプリケーションを終了して、インストールを続行できます。プルチェックが失敗した場合、アプリケーションは、TUI の Additional checks セクションに表示されるように、問題のトラブルシューティングに役立つ追加のチェックを実行します。追加のチェックの失敗は、プライマリープルチェックが成功するかぎり、必ずしも重大ではありません。

インストールが失敗する可能性があるホストネットワーク設定の問題がある場合は、コンソールアプリケーションを使用して、ネットワーク設定を調整できます。

重要

エージェントコンソールアプリケーションがホストネットワーク設定の問題を検出した場合は、ユーザーが手動でコンソールアプリケーションを停止し、続行する意思を示すまで、インストールワークフローは停止されます。

手順

  1. エージェントコンソールアプリケーションが、設定されたリリースイメージをレジストリーからプルできるかどうかを確認するまで待ちます。
  2. エージェントコンソールアプリケーションが、インストーラーの接続チェックに合格したことを示している場合は、プロンプトがタイムアウトになるまで待って、インストールを続行します。

    注記

    接続チェックに合格した場合も、ネットワーク設定の表示または変更を選択できます。

    ただし、タイムアウトせずに、エージェントコンソールアプリケーションとやりとりすることを選択した場合は、TUI を手動で終了して、インストールを続行する必要があります。

  3. エージェントコンソールアプリケーションのチェックが失敗した場合は、Release image URL プルチェックの横に赤いアイコンが表示されます。ホストのネットワーク設定を再設定するには、次の手順を使用します。

    1. TUI の Check Errors セクションを読みます。このセクションには、失敗したチェックに固有のエラーメッセージが表示されます。

    2. Configure network を選択して、NetworkManager TUI を起動します。
    3. Edit a connection を選択し、再設定する接続を選択します。
    4. 設定を編集し、OK を選択して、変更を保存します。
    5. Back を選択して、NetworkManager TUI のメイン画面に戻ります。
    6. Activate a Connection を選択します。
    7. 再設定されたネットワークを選択して、非アクティブ化します。
    8. 再設定されたネットワークを再度選択して、再アクティブ化します。
    9. Back を選択し、Quit を選択して、エージェントコンソールアプリケーションに戻ります。
    10. 新しいネットワーク設定を使用して、継続的なネットワークチェックが再開されるまで、5 秒間以上、待ちます。
    11. Release image URL プルチェックが成功し、URL の横に緑色のアイコンが表示された場合は、Quit を選択して、エージェントコンソールアプリケーションを終了し、インストールを続行します。

12.3.2.6. インストールの進行状況の追跡と確認

次の手順を使用して、インストールの進行状況を追跡し、インストールが成功したことを確認します。

前提条件

  • Kubernetes API サーバーの DNS レコードを設定している。

手順

  1. オプション: ブートストラップホスト (ランデブーホスト) がいつ再起動するかを知るには、次のコマンドを実行します。

    $ ./openshift-install --dir <install_directory> agent wait-for bootstrap-complete \ 
    1
    
        --log-level=info 
    2
    Copy to Clipboard Toggle word wrap
    1
    <install_directory> には、エージェント ISO が生成されたディレクトリーへのパスを指定します。
    2
    異なるインストールの詳細情報を表示するには、info ではなく、warndebug、または error を指定します。

    出力例

    ...................................................................
    ...................................................................
    INFO Bootstrap configMap status is complete
    INFO cluster bootstrap is complete
    Copy to Clipboard Toggle word wrap

    Kubernetes API サーバーでこれがコントロールプレーンマシンにブートストラップされていることを示すシグナルが出されるとコマンドは成功します。

  2. 進行状況を追跡し、インストールが成功したことを確認するには、次のコマンドを実行します。

    $ openshift-install --dir <install_directory> agent wait-for install-complete 
    1
    Copy to Clipboard Toggle word wrap
    1
    <install_directory> directory には、エージェント ISO が生成されたディレクトリーへのパスを指定します。

    出力例

    ...................................................................
    ...................................................................
    INFO Cluster is installed
    INFO Install complete!
    INFO To access the cluster as the system:admin user when using 'oc', run
    INFO     export KUBECONFIG=/home/core/installer/auth/kubeconfig
    INFO Access the OpenShift web-console here: https://console-openshift-console.apps.sno-cluster.test.example.com
    Copy to Clipboard Toggle word wrap

注記

GitOps ZTP マニフェストのオプションの方法を使用している場合、次の 3 つの方法で AgentClusterInstall.yaml ファイルを介してクラスターノードの IP アドレスエンドポイントを設定できます。

  • IPv4
  • IPv6
  • IPv4 と IPv6 の並列 (デュアルスタック)

IPv6 は、ベアメタルプラットフォームでのみサポートされます。

デュアルスタックネットワーキングの例

apiVIP: 192.168.11.3
ingressVIP: 192.168.11.4
clusterDeploymentRef:
  name: mycluster
imageSetRef:
  name: openshift-4.13
networking:
  clusterNetwork:
  - cidr: 172.21.0.0/16
    hostPrefix: 23
  - cidr: fd02::/48
    hostPrefix: 64
  machineNetwork:
  - cidr: 192.168.11.0/16
  - cidr: 2001:DB8::/32
  serviceNetwork:
  - 172.22.0.0/16
  - fd03::/112
  networkType: OVNKubernetes
Copy to Clipboard Toggle word wrap

12.3.3. GitOps ZTP カスタムリソースのサンプル

オプションで、GitOps Zero Touch Provisioning (ZTP) カスタムリソース (CR) オブジェクトを使用して、Agent-based Installer で OpenShift Container Platform クラスターをインストールできます。

以下の GitOps ZTP カスタムリソースをカスタマイズして、OpenShift Container Platform クラスターの詳細を指定できます。次のサンプル GitOps ZTP カスタムリソースは、単一ノードクラスター用です。

agent-cluster-install.yaml ファイルの例

  apiVersion: extensions.hive.openshift.io/v1beta1
  kind: AgentClusterInstall
  metadata:
    name: test-agent-cluster-install
    namespace: cluster0
  spec:
    clusterDeploymentRef:
      name: ostest
    imageSetRef:
      name: openshift-4.13
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      serviceNetwork:
      - 172.30.0.0/16
    provisionRequirements:
      controlPlaneAgents: 1
      workerAgents: 0
    sshPublicKey: <ssh_public_key>
Copy to Clipboard Toggle word wrap

cluster-deployment.yaml ファイルの例

apiVersion: hive.openshift.io/v1
kind: ClusterDeployment
metadata:
  name: ostest
  namespace: cluster0
spec:
  baseDomain: test.metalkube.org
  clusterInstallRef:
    group: extensions.hive.openshift.io
    kind: AgentClusterInstall
    name: test-agent-cluster-install
    version: v1beta1
  clusterName: ostest
  controlPlaneConfig:
    servingCertificates: {}
  platform:
    agentBareMetal:
      agentSelector:
        matchLabels:
          bla: aaa
  pullSecretRef:
    name: pull-secret
Copy to Clipboard Toggle word wrap

cluster-image-set.yaml ファイルの例

apiVersion: hive.openshift.io/v1
kind: ClusterImageSet
metadata:
  name: openshift-4.13
spec:
  releaseImage: registry.ci.openshift.org/ocp/release:4.13.0-0.nightly-2022-06-06-025509
Copy to Clipboard Toggle word wrap

infra-env.yaml ファイルの例

apiVersion: agent-install.openshift.io/v1beta1
kind: InfraEnv
metadata:
  name: myinfraenv
  namespace: cluster0
spec:
  clusterRef:
    name: ostest
    namespace: cluster0
  cpuArchitecture: aarch64
  pullSecretRef:
    name: pull-secret
  sshAuthorizedKey: <ssh_public_key>
  nmStateConfigLabelSelector:
    matchLabels:
      cluster0-nmstate-label-name: cluster0-nmstate-label-value
Copy to Clipboard Toggle word wrap

nmstateconfig.yaml ファイルの例

apiVersion: agent-install.openshift.io/v1beta1
kind: NMStateConfig
metadata:
  name: master-0
  namespace: openshift-machine-api
  labels:
    cluster0-nmstate-label-name: cluster0-nmstate-label-value
spec:
  config:
    interfaces:
      - name: eth0
        type: ethernet
        state: up
        mac-address: 52:54:01:aa:aa:a1
        ipv4:
          enabled: true
          address:
            - ip: 192.168.122.2
              prefix-length: 23
          dhcp: false
    dns-resolver:
      config:
        server:
          - 192.168.122.1
    routes:
      config:
        - destination: 0.0.0.0/0
          next-hop-address: 192.168.122.1
          next-hop-interface: eth0
          table-id: 254
  interfaces:
    - name: "eth0"
      macAddress: 52:54:01:aa:aa:a1
Copy to Clipboard Toggle word wrap

pull-secret.yaml ファイルの例

apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
  name: pull-secret
  namespace: cluster0
stringData:
  .dockerconfigjson: <pull_secret>
Copy to Clipboard Toggle word wrap

12.3.4. 失敗したエージェントベースのインストールからログデータを収集する

次の手順を使用して、失敗したエージェントベースのインストールに関するログデータを収集し、サポートケースで提供できるよう備えます。

前提条件

  • Kubernetes API サーバーの DNS レコードを設定している。

手順

  1. 次のコマンドを実行し、出力を収集します。

    $ ./openshift-install --dir <installation_directory> agent wait-for bootstrap-complete --log-level=debug
    Copy to Clipboard Toggle word wrap

    エラーメッセージの例

    ...
    ERROR Bootstrap failed to complete: : bootstrap process timed out: context deadline exceeded
    Copy to Clipboard Toggle word wrap

  2. 直前のコマンド出力で障害の発生が示された場合、またはブートストラップが進行していない場合は、次のコマンドを実行してランデブーホストに接続し、出力を収集します。

    $ ssh core@<node-ip> agent-gather -O >agent-gather.tar.xz
    Copy to Clipboard Toggle word wrap
    注記

    Red Hat サポートは、ランデブーホストから収集したデータを使用してほとんどの問題を診断できますが、一部のホストが登録できない場合はすべてのホストからこのデータを収集すると役立ちます。

  3. ブートストラップが完了し、クラスターノードが再起動したら、次のコマンドを実行して出力を収集します。

    $ ./openshift-install --dir <install_directory> agent wait-for install-complete --log-level=debug
    Copy to Clipboard Toggle word wrap
  4. 前のコマンドの出力が失敗を示している場合は、次の手順を実行します。

    1. 次のコマンドを実行して、kubeconfig ファイルを環境にエクスポートします。

      $ export KUBECONFIG=<install_directory>/auth/kubeconfig
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを実行して、デバッグ用の情報を収集します。

      $ oc adm must-gather
      Copy to Clipboard Toggle word wrap
    3. 次のコマンドを実行して、作業ディレクトリーに作成した must-gather ディレクトリーから圧縮ファイルを作成します。

      $ tar cvaf must-gather.tar.gz <must_gather_directory>
      Copy to Clipboard Toggle word wrap
  5. /auth サブディレクトリーを除いて、デプロイメント中に使用したインストールディレクトリーを Red Hat カスタマーポータル のサポートケースに添付します。
  6. この手順で収集した他のすべてのデータをサポートケースに添付してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat