Agent-based Installer を使用したオンプレミスクラスターのインストール


OpenShift Container Platform 4.17

Agent-based Installer を使用してオンプレミスの OpenShift Container Platform クラスターをインストールする

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、Agent-based Installer を使用してオンプレミスの OpenShift Container Platform クラスターをインストールする方法を説明します。

第1章 Agent-based Installer を使用したインストールの準備

1.1. Agent-based Installer について

エージェントベースのインストール方法では、選択した任意の方法でオンプレミスサーバーを柔軟に起動できます。Assisted Installation サービスの使いやすさと、エアギャップ環境を含むオフラインでの実行機能を兼ね備えています。エージェントベースのインストールは、OpenShift Container Platform インストーラーのサブコマンドです。OpenShift Container Platform クラスターをデプロイするために必要なすべての情報を含む起動可能な ISO イメージを、利用可能なリリースイメージと共に生成します。

設定は、installer-provisioned infrastructure および user-provisioned infrastructure のインストール方法と同じ形式です。Agent-based Installer は、必要に応じてゼロタッチプロビジョニング (ZTP) カスタムリソースを生成または受け入れることもできます。ZTP を使用すると、ベアメタル機器の宣言型設定で新しいエッジサイトをプロビジョニングできます。

表1.1 Agent-based Installer でサポートされるアーキテクチャー
CPU アーキテクチャー接続インストール非接続インストール

64-bit x86

64-bit ARM

ppc64le

s390x

1.2. Agent-based Installer について

OpenShift Container Platform ユーザーは、切断された環境で Assisted Installer のホストサービスの利点を活用できます。

エージェントベースのインストールは、Assisted Discovery Agent と Assisted Service を含む起動可能な ISO で構成されます。クラスターのインストールを実行するには両方が必要ですが、後者はいずれかのホストでのみ実行されます。

注記

現在、IBM Z® (s390x) 上の ISO ブートサポートは Red Hat Enterprise Linux (RHEL) KVM でのみ利用できます。RHEL KVM では、PXE ベースのインストールか ISO ベースのインストールのどちらかを柔軟に選択できます。z/VM および論理パーティション (LPAR) を使用したインストールでは、PXE ブートのみがサポートされます。

openshift-install agent create image サブコマンドは、指定した入力をもとに一時 ISO を生成します。以下のマニフェストで入力を指定できます。

推奨:

  • install-config.yaml
  • agent-config.yaml

オプション: ZTP マニフェスト

  • cluster-manifests/cluster-deployment.yaml
  • cluster-manifests/agent-cluster-install.yaml
  • cluster-manifests/pull-secret.yaml
  • cluster-manifests/infraenv.yaml
  • cluster-manifests/cluster-image-set.yaml
  • cluster-manifests/nmstateconfig.yaml
  • mirror/registries.conf
  • mirror/ca-bundle.crt

1.2.1. Agent-based Installer のワークフロー

コントロールプレーンホストの 1 つは、ブートプロセスの開始時に Assisted Service を実行し、最終的にブートストラップホストになります。このノードを ランデブーホスト (ノード 0) と呼びます。Assisted Service は、すべてのホストが要件を満たしていることを確認し、OpenShift Container Platform クラスターのデプロイをトリガーします。すべてのノードで Red Hat Enterprise Linux CoreOS (RHCOS) イメージがディスクに書き込まれます。ブートストラップ以外のノードは再起動し、クラスターデプロイメントを開始します。ノードが再起動されると、ランデブーホストが再起動し、クラスターに参加します。ブートストラップが完了し、クラスターがデプロイされます。

図1.1 ノードのインストールワークフロー

Agent-based Installer のワークフロー

以下のトポロジーでは、openshift-install agent create image サブコマンドを使用して、ネットワークに接続されていない OpenShift Container Platform クラスターをインストールできます。

  • 単一ノードの OpenShift Container Platform クラスター (SNO): マスターとワーカーの両方であるノード。
  • 3 ノードの OpenShift Container Platform クラスター: ワーカーノードでもある 3 つのマスターノードを持つコンパクトなクラスター。
  • 高可用性 OpenShift Container Platform クラスター (HA): 任意の数のワーカーノードを持つ 3 つのマスターノード。

1.3. FIPS 準拠について

多くの OpenShift Container Platform のお客様においては、システムが実稼働環境で使用される前に、一定レベルでの規制への対応またはコンプライアンスが必要になります。この規制対応は、国家標準、業界標準または組織の企業ガバナンスフレームワークによって課せられます。FIPS (Federal Information Processing Standards) コンプライアンスは、安全な環境で必要とされる最も重要なコンポーネントの 1 つであり、サポートされている暗号化技術のみがノード上で許可されるようにします。

重要

クラスターで FIPS モードを有効にするには、FIPS モードで動作するように設定された Red Hat Enterprise Linux (RHEL) コンピューターからインストールプログラムを実行する必要があります。RHEL で FIPS モードを設定する方法の詳細は、RHEL から FIPS モードへの切り替え を参照してください。

FIPS モードでブートされた Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) を実行する場合、OpenShift Container Platform コアコンポーネントは、x86_64、ppc64le、および s390x アーキテクチャーのみで、FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。

1.4. Agent-based Installer による FIPS の設定

クラスターのデプロイ中に、Red Hat Enterprise Linux CoreOS (RHCOS) マシンがクラスターにデプロイされると、連邦情報処理標準 (FIPS) の変更が適用されます。Red Hat Enterprise Linux (RHEL) マシンでは、ワーカーマシンとして使用する予定のマシンにオペレーティングシステムをインストールする場合に FIPS モードを有効にする必要があります。

install-config.yaml および agent-config.yaml の推奨される方法で FIPS モードを有効にできます。

  1. install-config.yaml ファイルで fips フィールドの値を True に設定する必要があります。

    サンプル install-config.yaml.file

    apiVersion: v1
    baseDomain: test.example.com
    metadata:
      name: sno-cluster
    fips: True

  2. オプション: GitOps ZTP マニフェストを使用している場合、agent-cluster-install.yaml ファイルの Agent-install.openshift.io/install-config-overrides フィールドで fips の値を True に設定する必要があります。

    サンプルの agent-cluster-install.yaml ファイル

    apiVersion: extensions.hive.openshift.io/v1beta1
    kind: AgentClusterInstall
    metadata:
      annotations:
        agent-install.openshift.io/install-config-overrides: '{"fips": True}'
      name: sno-cluster
      namespace: sno-cluster-test

1.5. ホストの設定

クラスター上の各ホストの agent-config.yaml ファイルで、ネットワーク設定やルートデバイスのヒントなど追加設定を行うことができます。

重要

設定するホストごとに、ホスト上のインターフェイスの MAC アドレスで、設定するホストを指定する必要があります。

1.5.1. ホストのロール

クラスター内の各ホストには、master または worker のいずれかのロールが割り当てられます。role パラメーターを使用して、agent-config.yaml ファイルで各ホストのロールを定義できます。ホストにロールを割り当てない場合、インストール時にロールがランダムに割り当てられます。

そのため、ホストのロールは明示的に定義することが推奨されます。

rendezvousIP は、master ロールを持つホストに割り当てる必要があります。これは、手動で、または Agent-based Installer によるロールの割り当てを許可することで行えます。

重要

ランデブーホストの master ロールを明示的に定義する必要はありませんが、この割り当てと競合する設定は作成できません。

たとえば、ホストが 4 台あり、そのうち 3 台が master ロールを持つように明示的に定義されている場合、最後の 1 台にはインストール時に worker ロールが自動的に割り当てられ、ランデブーホストには設定できません。

agent-config.yaml のサンプルファイル

apiVersion: v1beta1
kind: AgentConfig
metadata:
  name: example-cluster
rendezvousIP: 192.168.111.80
hosts:
  - hostname: master-1
    role: master
    interfaces:
      - name: eno1
        macAddress: 00:ef:44:21:e6:a5
  - hostname: master-2
    role: master
    interfaces:
      - name: eno1
        macAddress: 00:ef:44:21:e6:a6
  - hostname: master-3
    role: master
    interfaces:
      - name: eno1
        macAddress: 00:ef:44:21:e6:a7
  - hostname: worker-1
    role: worker
    interfaces:
      - name: eno1
        macAddress: 00:ef:44:21:e6:a8

1.5.2. ルートデバイスヒントについて

rootDeviceHints パラメーターは、インストーラーが Red Hat Enterprise Linux CoreOS (RHCOS) イメージを特定のデバイスにプロビジョニングできるようにします。インストーラーは、検出順にデバイスを検査し、検出された値をヒントの値と比較します。インストーラーは、ヒント値に一致する最初に検出されたデバイスを使用します。この設定は複数のヒントを組み合わせることができますが、デバイスは、インストーラーがこれを選択できるようにすべてのヒントに一致する必要があります。

表1.3 サブフィールド
サブフィールド説明

deviceName

/dev/vda/dev/disk/by-path/ などの Linux デバイス名を含む文字列。ストレージの場所への /dev/disk/by-path/<device_path> リンクを使用することを推奨します。ヒントは、実際の値と完全に一致する必要があります。

hctl

0:0:0:0 などの SCSI バスアドレスを含む文字列。ヒントは、実際の値と完全に一致する必要があります。

model

ベンダー固有のデバイス識別子を含む文字列。ヒントは、実際の値のサブ文字列になります。

vendor

デバイスのベンダーまたは製造元の名前が含まれる文字列。ヒントは、実際の値のサブ文字列になります。

serialNumber

デバイスのシリアル番号を含む文字列。ヒントは、実際の値と完全に一致する必要があります。

minSizeGigabytes

デバイスの最小サイズ (ギガバイト単位) を表す整数。

wwn

一意のストレージ ID を含む文字列。ヒントは、実際の値と完全に一致する必要があります。udevadm コマンドを使用して wwn 値を取得し、コマンドが ID_WWN_WITH_EXTENSION の値を出力する場合は、この値を使用して wwn サブフィールドを指定する必要があります。

rotational

デバイスがローテーションするディスクである (true) か、そうでないか (false) を示すブール値。

使用例

     - name: master-0
       role: master
       rootDeviceHints:
         deviceName: "/dev/sda"

1.6. ネットワークの概要

最初の起動時にすべてのホストが支援サービスにチェックインできるように、ランデブー IP はエージェント ISO の生成時に認識されている必要があります。IP アドレスが動的ホスト設定プロトコル (DHCP) サーバーを使用して割り当てられている場合、rendezvousIP フィールドは、デプロイメントされたコントロールプレーンの一部になるホストの 1 つの IP アドレスに設定する必要があります。DHCP サーバーがない環境では、IP アドレスを静的に定義できます。

静的 IP アドレスに加えて、NMState 形式の任意のネットワーク設定を適用できます。これには、VLAN と NIC ボンディングが含まれます。

1.6.1. DHCP

推奨される方法: install-config.yaml および agent-config.yaml

rendezvousIP フィールドの値を指定する必要があります。networkConfig フィールドは空白のままにすることができます。

agent-config.yaml.file のサンプル

apiVersion: v1alpha1
kind: AgentConfig
metadata:
  name: sno-cluster
rendezvousIP: 192.168.111.80 1

1
ランデブーホストの IP アドレス。

1.6.2. 静的ネットワーキング

  1. 推奨される方法: install-config.yaml および agent-config.yaml

    agent-config.yaml.file のサンプル

    cat > agent-config.yaml << EOF
    apiVersion: v1alpha1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80 1
    hosts:
      - hostname: master-0
        interfaces:
          - name: eno1
            macAddress: 00:ef:44:21:e6:a5 2
        networkConfig:
          interfaces:
            - name: eno1
              type: ethernet
              state: up
              mac-address: 00:ef:44:21:e6:a5
              ipv4:
                enabled: true
                address:
                  - ip: 192.168.111.80 3
                    prefix-length: 23 4
                dhcp: false
          dns-resolver:
            config:
              server:
                - 192.168.111.1 5
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 192.168.111.1 6
                next-hop-interface: eno1
                table-id: 254
    EOF

    1
    rendezvousIP フィールドに値が指定されていない場合、networkConfig フィールドで指定された静的 IP アドレスから 1 つのアドレスが選択されます。
    2
    設定を適用するホストを決定するために使用される、ホスト上のインターフェイスの MAC アドレス。
    3
    ターゲットのベアメタルホストの静的 IP アドレス。
    4
    ターゲットのベアメタルホストの静的 IP アドレスのサブネット接頭辞。
    5
    ターゲットのベアメタルホストの DNS サーバー。
    6
    ノードトラフィックのネクストホップアドレス。これは、指定されたインターフェイスに設定される IP アドレスと同じサブネットにある必要があります。
  2. オプションの方法: GitOps ZTP マニフェスト

    GitOps ZTP カスタムリソースのオプションの方法は、6 つのカスタムリソースで構成されます。静的 IP は 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 1
                  prefix-length: 23 2
              dhcp: false
        dns-resolver:
          config:
            server:
              - 192.168.122.1 3
        routes:
          config:
            - destination: 0.0.0.0/0
              next-hop-address: 192.168.122.1 4
              next-hop-interface: eth0
              table-id: 254
      interfaces:
        - name: eth0
          macAddress: 52:54:01:aa:aa:a1 5
    1
    ターゲットのベアメタルホストの静的 IP アドレス。
    2
    ターゲットのベアメタルホストの静的 IP アドレスのサブネット接頭辞。
    3
    ターゲットのベアメタルホストの DNS サーバー。
    4
    ノードトラフィックのネクストホップアドレス。これは、指定されたインターフェイスに設定される IP アドレスと同じサブネットにある必要があります。
    5
    設定を適用するホストを決定するために使用される、ホスト上のインターフェイスの MAC アドレス。

ランデブー IP は、config フィールドで指定された静的 IP アドレスから選択されます。

1.7. プラットフォーム "none" オプションを使用するクラスターの要件

このセクションでは、プラットフォーム none オプションを使用するように設定されたエージェントベースの OpenShift Container Platform インストールの要件を説明します。

重要

仮想化またはクラウド環境で OpenShift Container Platform クラスターのインストールを試行する前に、guidelines for deploying OpenShift Container Platform on non-tested platforms にある情報を確認してください。

1.7.1. プラットフォーム "none" の DNS 要件

OpenShift Container Platform のデプロイメントでは、以下のコンポーネントに DNS 名前解決が必要です。

  • The Kubernetes API
  • OpenShift Container Platform のアプリケーションワイルドカード
  • コントロールプレーンおよびコンピュートマシン

逆引き DNS 解決は、Kubernetes API、コントロールプレーンマシン、およびコンピュートマシンにも必要です。

DNS A/AAAA または CNAME レコードは名前解決に使用され、PTR レコードは逆引き名前解決に使用されます。ホスト名が DHCP によって提供されていない場合は、Red Hat Enterprise Linux CoreOS (RHCOS) は逆引きレコードを使用してすべてのノードのホスト名を設定するため、逆引きレコードは重要です。さらに、逆引きレコードは、OpenShift Container Platform が動作するために必要な証明書署名要求 (CSR) を生成するために使用されます。

注記

各クラスターノードにホスト名を提供するために DHCP サーバーを使用することが推奨されます。

以下の DNS レコードは、プラットフォーム none オプションを使用する OpenShift Container Platform クラスターに必要であり、インストール前に設定されている必要があります。各レコードで、<cluster_name> はクラスター名で、<base_domain> は、install-config.yaml ファイルに指定するベースドメインです。完全な DNS レコードは <component>.<cluster_name>.<base_domain>. の形式を取ります。

表1.4 必要な DNS レコード
コンポーネントレコード説明

Kubernetes API

api.<cluster_name>.<base_domain>.

API ロードバランサーを特定するための DNS A/AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター外のクライアントおよびクラスター内のすべてのノードで解決できる必要があります。

api-int.<cluster_name>.<base_domain>.

API ロードバランサーを内部的に識別するための DNS A/AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター内のすべてのノードで解決できる必要があります。

重要

API サーバーは、Kubernetes に記録されるホスト名でワーカーノードを解決できる必要があります。API サーバーがノード名を解決できない場合、プロキシーされる API 呼び出しが失敗し、Pod からログを取得できなくなる可能性があります。

ルート

*.apps.<cluster_name>.<base_domain>.

アプリケーション Ingress ロードバランサーを参照するワイルドカード DNS A/AAAA または CNAME レコード。アプリケーション Ingress ロードバランサーは、Ingress コントローラー Pod を実行するマシンをターゲットにします。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。これらのレコードは、クラスター外のクライアントおよびクラスター内のすべてのノードで解決できる必要があります。

たとえば、console-openshift-console.apps.<cluster_name>.<base_domain> は、OpenShift Container Platform コンソールへのワイルドカードルートとして使用されます。

コントロールプレーンマシン

<master><n>.<cluster_name>.<base_domain>.

ワーカーノードの各マシンを特定するための DNS A/AAAA または CNAME レコードおよび DNS PTR レコードこれらのレコードは、クラスター内のノードで解決できる必要があります。

コンピュートマシン

<worker><n>.<cluster_name>.<base_domain>.

ワーカーノードの各マシンを特定するための DNS A/AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター内のノードで解決できる必要があります。

注記

OpenShift Container Platform 4.4 以降では、DNS 設定で etcd ホストおよび SRV レコードを指定する必要はありません。

ヒント

dig コマンドを使用して、名前および逆引き名前解決を確認することができます。

1.7.1.1. プラットフォーム "none" クラスターの DNS 設定例

このセクションでは、プラットフォーム none オプションを使用して OpenShift Container Platform をデプロイするための DNS 要件を満たす A および PTR レコード設定サンプルを提供します。サンプルは、特定の DNS ソリューションを選択するためのアドバイスを提供することを目的としていません。

この例では、クラスター名は ocp4 で、ベースドメインは example.com です。

プラットフォーム "none" クラスターの DNS A レコード設定の例

次の例は、プラットフォーム none オプションを使用したクラスター内の名前解決のサンプル A レコードを示す BIND ゾーンファイルです。

例1.1 DNS ゾーンデータベースのサンプル

$TTL 1W
@	IN	SOA	ns1.example.com.	root (
			2019070700	; serial
			3H		; refresh (3 hours)
			30M		; retry (30 minutes)
			2W		; expiry (2 weeks)
			1W )		; minimum (1 week)
	IN	NS	ns1.example.com.
	IN	MX 10	smtp.example.com.
;
;
ns1.example.com.		IN	A	192.168.1.5
smtp.example.com.		IN	A	192.168.1.5
;
helper.example.com.		IN	A	192.168.1.5
helper.ocp4.example.com.	IN	A	192.168.1.5
;
api.ocp4.example.com.		IN	A	192.168.1.5 1
api-int.ocp4.example.com.	IN	A	192.168.1.5 2
;
*.apps.ocp4.example.com.	IN	A	192.168.1.5 3
;
master0.ocp4.example.com.	IN	A	192.168.1.97 4
master1.ocp4.example.com.	IN	A	192.168.1.98 5
master2.ocp4.example.com.	IN	A	192.168.1.99 6
;
worker0.ocp4.example.com.	IN	A	192.168.1.11 7
worker1.ocp4.example.com.	IN	A	192.168.1.7 8
;
;EOF
1
Kubernetes API の名前解決を提供します。レコードは API ロードバランサーの IP アドレスを参照します。
2
Kubernetes API の名前解決を提供します。レコードは API ロードバランサーの IP アドレスを参照し、内部クラスター通信に使用されます。
3
ワイルドカードルートの名前解決を提供します。レコードは、アプリケーション Ingress ロードバランサーの IP アドレスを参照します。アプリケーション Ingress ロードバランサーは、Ingress コントローラー Pod を実行するマシンをターゲットにします。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。
注記

この例では、同じロードバランサーが Kubernetes API およびアプリケーションの Ingress トラフィックに使用されます。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。

4 5 6
コントロールプレーンマシンの名前解決を提供します。
7 8
コンピュートマシンの名前解決を提供します。

プラットフォーム "none" クラスターの DNS PTR レコード設定の例

次の BIND ゾーンファイルの例は、プラットフォーム none オプションを使用したクラスターでの逆名前解決のサンプル PTR レコードを示しています。

例1.2 逆引きレコードの DNS ゾーンデータベースの例

$TTL 1W
@	IN	SOA	ns1.example.com.	root (
			2019070700	; serial
			3H		; refresh (3 hours)
			30M		; retry (30 minutes)
			2W		; expiry (2 weeks)
			1W )		; minimum (1 week)
	IN	NS	ns1.example.com.
;
5.1.168.192.in-addr.arpa.	IN	PTR	api.ocp4.example.com. 1
5.1.168.192.in-addr.arpa.	IN	PTR	api-int.ocp4.example.com. 2
;
97.1.168.192.in-addr.arpa.	IN	PTR	master0.ocp4.example.com. 3
98.1.168.192.in-addr.arpa.	IN	PTR	master1.ocp4.example.com. 4
99.1.168.192.in-addr.arpa.	IN	PTR	master2.ocp4.example.com. 5
;
11.1.168.192.in-addr.arpa.	IN	PTR	worker0.ocp4.example.com. 6
7.1.168.192.in-addr.arpa.	IN	PTR	worker1.ocp4.example.com. 7
;
;EOF
1
Kubernetes API の逆引き DNS 解決を提供します。PTR レコードは、API ロードバランサーのレコード名を参照します。
2
Kubernetes API の逆引き DNS 解決を提供します。PTR レコードは、API ロードバランサーのレコード名を参照し、内部クラスター通信に使用されます。
3 4 5
コントロールプレーンマシンの逆引き DNS 解決を提供します。
6 7
コンピュートマシンの逆引き DNS 解決を提供します。
注記

PTR レコードは、OpenShift Container Platform アプリケーションのワイルドカードには必要ありません。

1.7.2. プラットフォーム "none" 負荷分散要件

OpenShift Container Platform をインストールする前に、API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングする必要があります。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。

注記

これらの要件は、プラットフォーム none オプションを使用する単一ノード OpenShift クラスターには適用されません。

注記

Red Hat Enterprise Linux (RHEL) インスタンスを使用して API およびアプリケーションイングレスロードバランサーをデプロイする場合は、RHEL サブスクリプションを別途購入する必要があります。

負荷分散インフラストラクチャーは以下の要件を満たす必要があります。

  1. API ロードバランサー: プラットフォームと対話およびプラットフォームを設定するためのユーザー向けの共通のエンドポイントを提供します。以下の条件を設定します。

    • Layer 4 の負荷分散のみ。これは、Raw TCP、SSL パススルー、または SSL ブリッジモードと呼ばれます。SSL ブリッジモードを使用する場合は、API ルートの Server Name Indication (SNI) を有効にする必要があります。
    • ステートレス負荷分散アルゴリズム。オプションは、ロードバランサーの実装によって異なります。
    重要

    API ロードバランサーのセッションの永続性は設定しないでください。

    ロードバランサーのフロントとバックの両方で以下のポートを設定します。

    表1.5 API ロードバランサー
    ポートバックエンドマシン (プールメンバー)内部外部説明

    6443

    コントロールプレーンAPI サーバーのヘルスチェックプローブの /readyz エンドポイントを設定する必要があります。

    X

    X

    Kubernetes API サーバー

    22623

    コントロールプレーン

    X

     

    マシン設定サーバー

    注記

    ロードバランサーは、API サーバーが /readyz エンドポイントをオフにしてからプールから API サーバーインスタンスを削除するまで最大 30 秒かかるように設定する必要があります。/readyz の後の時間枠内でエラーが返されたり、正常になったりする場合は、エンドポイントが削除または追加されているはずです。5 秒または 10 秒ごとにプローブし、2 つの正常な要求が正常な状態になり、3 つの要求が正常な状態になりません。これらは十分にテストされた値です。

  2. Application Ingress ロードバランサー: クラスター外から送られるアプリケーショントラフィックの Ingress ポイントを提供します。Ingress ルーターの作業用の設定が OpenShift Container Platform クラスターに必要です。

    以下の条件を設定します。

    • Layer 4 の負荷分散のみ。これは、Raw TCP、SSL パススルー、または SSL ブリッジモードと呼ばれます。SSL ブリッジモードを使用する場合は、Ingress ルートの Server Name Indication (SNI) を有効にする必要があります。
    • 選択可能なオプションやプラットフォーム上でホストされるアプリケーションの種類に基づいて、接続ベースの永続化またはセッションベースの永続化が推奨されます。
    ヒント

    クライアントの実際の IP アドレスがアプリケーション Ingress ロードバランサーによって確認できる場合、ソースの IP ベースのセッション永続化を有効にすると、エンドツーエンドの TLS 暗号化を使用するアプリケーションのパフォーマンスを強化できます。

    ロードバランサーのフロントとバックの両方で以下のポートを設定します。

    表1.6 アプリケーション Ingress ロードバランサー
    ポートバックエンドマシン (プールメンバー)内部外部説明

    443

    デフォルトで Ingress コントローラー Pod、コンピュート、またはワーカーを実行するマシン。

    X

    X

    HTTPS トラフィック

    80

    デフォルトで Ingress コントローラー Pod、コンピュート、またはワーカーを実行するマシン。

    X

    X

    HTTP トラフィック

    注記

    ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。

1.7.2.1. プラットフォーム "none" クラスターのロードバランサー設定の例

このセクションでは、プラットフォーム none オプションを使用してクラスターのロードバランシング要件を満たす API とアプリケーションの Ingress ロードバランサー設定の例を示します。この例は、HAProxy ロードバランサーの /etc/haproxy/haproxy.cfg 設定です。この例では、特定の負荷分散ソリューションを選択するためのアドバイスを提供することを目的としていません。

この例では、同じロードバランサーが Kubernetes API およびアプリケーションの Ingress トラフィックに使用されます。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。

注記

HAProxy をロードバランサーとして使用し、SELinux が enforcing に設定されている場合は、setsebool -P haproxy_connect_any=1 を実行して、HAProxy サービスが設定済みの TCP ポートにバインドできることを確認する必要があります。

例1.3 API およびアプリケーション Ingress ロードバランサーの設定例

global
  log         127.0.0.1 local2
  pidfile     /var/run/haproxy.pid
  maxconn     4000
  daemon
defaults
  mode                    http
  log                     global
  option                  dontlognull
  option http-server-close
  option                  redispatch
  retries                 3
  timeout http-request    10s
  timeout queue           1m
  timeout connect         10s
  timeout client          1m
  timeout server          1m
  timeout http-keep-alive 10s
  timeout check           10s
  maxconn                 3000
listen api-server-6443 1
  bind *:6443
  mode tcp
  server master0 master0.ocp4.example.com:6443 check inter 1s
  server master1 master1.ocp4.example.com:6443 check inter 1s
  server master2 master2.ocp4.example.com:6443 check inter 1s
listen machine-config-server-22623 2
  bind *:22623
  mode tcp
  server master0 master0.ocp4.example.com:22623 check inter 1s
  server master1 master1.ocp4.example.com:22623 check inter 1s
  server master2 master2.ocp4.example.com:22623 check inter 1s
listen ingress-router-443 3
  bind *:443
  mode tcp
  balance source
  server worker0 worker0.ocp4.example.com:443 check inter 1s
  server worker1 worker1.ocp4.example.com:443 check inter 1s
listen ingress-router-80 4
  bind *:80
  mode tcp
  balance source
  server worker0 worker0.ocp4.example.com:80 check inter 1s
  server worker1 worker1.ocp4.example.com:80 check inter 1s
1
ポート 6443 は Kubernetes API トラフィックを処理し、コントロールプレーンマシンを参照します。
2
ポート 22623 はマシン設定サーバートラフィックを処理し、コントロールプレーンマシンを参照します。
3
ポート 443 は HTTPS トラフィックを処理し、Ingress コントローラー Pod を実行するマシンを参照します。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。
4
ポート 80 は HTTP トラフィックを処理し、Ingress コントローラー Pod を実行するマシンを参照します。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。
注記

ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。

ヒント

HAProxy をロードバランサーとして使用する場合は、HAProxy ノードで netstat -nltupe を実行して、ポート 644322623443、および 80haproxy プロセスがリッスンしていることを確認することができます。

1.8. 例: ボンディングと VLAN インターフェイスノードのネットワーク設定

次の agent-config.yaml ファイルは、ボンディングおよび VLAN インターフェイスのマニフェストの例です。

  apiVersion: v1alpha1
  kind: AgentConfig
  rendezvousIP: 10.10.10.14
  hosts:
    - hostname: master0
      role: master
      interfaces:
       - name: enp0s4
         macAddress: 00:21:50:90:c0:10
       - name: enp0s5
         macAddress: 00:21:50:90:c0:20
      networkConfig:
        interfaces:
          - name: bond0.300 1
            type: vlan 2
            state: up
            vlan:
              base-iface: bond0
              id: 300
            ipv4:
              enabled: true
              address:
                - ip: 10.10.10.14
                  prefix-length: 24
              dhcp: false
          - name: bond0 3
            type: bond 4
            state: up
            mac-address: 00:21:50:90:c0:10 5
            ipv4:
              enabled: false
            ipv6:
              enabled: false
            link-aggregation:
              mode: active-backup 6
              options:
                miimon: "150" 7
              port:
               - enp0s4
               - enp0s5
        dns-resolver: 8
          config:
            server:
              - 10.10.10.11
              - 10.10.10.12
        routes:
          config:
            - destination: 0.0.0.0/0
              next-hop-address: 10.10.10.10 9
              next-hop-interface: bond0.300 10
              table-id: 254
1 3
インターフェイスの名前。
2
インターフェイスのタイプ。以下の例では VLAN を作成します。
4
インターフェイスのタイプ。この例では、ボンドを作成します。
5
インターフェイスの MAC アドレス。
6
mode 属性は、ボンドモードを指定します。
7
MII リンクの監視頻度をミリ秒単位で指定します。この例では、ボンディングリンクを 150 ミリ秒ごとに検査します。
8
オプション:DNS サーバーの検索およびサーバー設定を指定します。
9
ノードトラフィックのネクストホップアドレス。これは、指定されたインターフェイスに設定される IP アドレスと同じサブネットにある必要があります。
10
ノードトラフィックのネクストホップインターフェイス。

1.9. 例: ボンディングと SR-IOV デュアル NIC ノードのネットワーク設定

次の agent-config.yaml ファイルは、ボンドと SR-IOV インターフェイスを備えたデュアルポート NIC のマニフェストの例です。

apiVersion: v1alpha1
kind: AgentConfig
rendezvousIP: 10.10.10.14
hosts:
  - hostname: worker-1
    interfaces:
      - name: eno1
        macAddress: 0c:42:a1:55:f3:06
      - name: eno2
        macAddress: 0c:42:a1:55:f3:07
    networkConfig: 1
      interfaces: 2
        - name: eno1 3
          type: ethernet 4
          state: up
          mac-address: 0c:42:a1:55:f3:06
          ipv4:
            enabled: true
            dhcp: false 5
          ethernet:
            sr-iov:
              total-vfs: 2 6
          ipv6:
            enabled: false
        - name: sriov:eno1:0
          type: ethernet
          state: up 7
          ipv4:
            enabled: false 8
          ipv6:
            enabled: false
            dhcp: false
        - name: sriov:eno1:1
          type: ethernet
          state: down
        - name: eno2
          type: ethernet
          state: up
          mac-address: 0c:42:a1:55:f3:07
          ipv4:
            enabled: true
          ethernet:
            sr-iov:
              total-vfs: 2
          ipv6:
            enabled: false
        - name: sriov:eno2:0
          type: ethernet
          state: up
          ipv4:
            enabled: false
          ipv6:
            enabled: false
        - name: sriov:eno2:1
          type: ethernet
          state: down
        - name: bond0
          type: bond
          state: up
          min-tx-rate: 100 9
          max-tx-rate: 200 10
          link-aggregation:
            mode: active-backup 11
            options:
              primary: sriov:eno1:0 12
            port:
              - sriov:eno1:0
              - sriov:eno2:0
          ipv4:
            address:
              - ip: 10.19.16.57 13
                prefix-length: 23
            dhcp: false
            enabled: true
          ipv6:
            enabled: false
          dns-resolver:
            config:
              server:
                - 10.11.5.160
                - 10.2.70.215
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 10.19.17.254
                next-hop-interface: bond0 14
                table-id: 254
1
networkConfig フィールドには、ホストのネットワーク設定に関する情報が含まれ、サブフィールドには、interfacesdns-resolver、および routes が含まれます。
2
interfaces フィールドは、ホスト用に定義されたネットワークインターフェイスの配列です。
3
インターフェイスの名前。
4
インターフェイスのタイプ。この例では、イーサネットインターフェイスを作成します。
5
厳密に必要ではない場合、物理機能 (PF) の DHCP を無効にするには、これを false に設定します。
6
これを、インスタンス化する SR-IOV 仮想機能 (VF) の数に設定します。
7
これを up に設定します。
8
ボンドに接続された VF の IPv4 アドレス指定を無効にするには、これを false に設定します。
9
VF の最小伝送速度 (Mbps) を設定します。このサンプル値は、100 Mbps のレートを設定します。
  • この値は、最大伝送レート以下である必要があります。
  • Intel NIC は min-tx-rate パラメーターをサポートしていません。詳細は、BZ#1772847 を参照してください。
10
VF の最大伝送速度 (Mbps) を設定します。このサンプル値は、200 Mbps のレートを設定します。
11
目的のボンディングモードを設定します。
12
ボンディングインターフェイスの優先ポートを設定します。プライマリーデバイスは、最初に使用されるボンディングインターフェイスであり、障害が発生しないかぎり、破棄されません。この設定が特に役立つのは、ボンディングインターフェイスの NIC の 1 つが高速なため、大規模な負荷に対応できる場合です。この設定は、ボンディングインターフェイスが active-backup モード (モード 1) および balance-tlb (モード 5) の場合のみに有効です。
13
ボンドインターフェイスの静的 IP アドレスを設定します。これはノードの IP アドレスです。
14
デフォルトルートのゲートウェイとして bond0 を設定します。

1.10. ベアメタルのサンプル install-config.yaml ファイル

install-config.yaml ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。

apiVersion: v1
baseDomain: example.com 1
compute: 2
- name: worker
  replicas: 0 3
controlPlane: 4
  name: master
  replicas: 1 5
metadata:
  name: sno-cluster 6
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 7
    hostPrefix: 23 8
  networkType: OVNKubernetes 9
  serviceNetwork: 10
  - 172.30.0.0/16
platform:
  none: {} 11
fips: false 12
pullSecret: '{"auths": ...}' 13
sshKey: 'ssh-ed25519 AAAA...' 14
1
クラスターのベースドメイン。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
2 4
controlPlane セクションは単一マッピングですが、compute セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute セクションの最初の行はハイフン - で始め、controlPlane セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。
3
このパラメーターは、インストールプロセスをトリガーする前に、エージェントベースのインストールが検出を待機するコンピュートマシンの数を制御します。これは、生成された ISO で起動する必要があるコンピューティングマシンの数です。
注記

3 ノードクラスターをインストールする場合は、Red Hat Enterprise Linux CoreOS (RHCOS) マシンをインストールする際にコンピュートマシンをデプロイしないでください。

5
クラスターに追加するコントロールプレーンマシンの数。クラスターをこれらの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
6
DNS レコードに指定したクラスター名。
7
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。このブロックは既存の物理ネットワークと重複できません。これらの IP アドレスは Pod ネットワークに使用されます。外部ネットワークから Pod にアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定する必要があります。
注記

クラス E の CIDR 範囲は、将来の使用のために予約されています。クラス E CIDR 範囲を使用するには、ネットワーク環境がクラス E CIDR 範囲内の IP アドレスを受け入れるようにする必要があります。

8
それぞれの個別ノードに割り当てるサブネット接頭辞長。たとえば、hostPrefix23 に設定されている場合、各ノードに指定の cidr から /23 サブネットが割り当てられます。これにより、510 (2^(32 - 23) - 2) Pod IP アドレスが許可されます。外部ネットワークからのノードへのアクセスを提供する必要がある場合には、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
9
インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
10
サービス IP アドレスに使用する IP アドレスプール。1 つの IP アドレスプールのみを入力できます。このブロックは既存の物理ネットワークと重複できません。外部ネットワークからサービスにアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
11
単一ノードクラスターの場合は、プラットフォームを none に設定しなくてはなりません。マルチノードクラスターの場合は、プラットフォームを vspherebaremetal、または none に設定できます。
注記

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

  • IPv4
  • IPv6
  • IPv4 と 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

12
FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
重要

FIPS モードでブートされた Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) を実行する場合、OpenShift Container Platform コアコンポーネントは、x86_64、ppc64le、および s390x アーキテクチャーのみで、FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。

13
このプルシークレットを使用し、OpenShift Container Platform コンポーネントのコンテナーイメージを提供する Quay.io など、組み込まれた各種の認証局によって提供されるサービスで認証できます。
14
Red Hat Enterprise Linux CoreOS (RHCOS) の core ユーザーの SSH 公開鍵。
注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

1.11. agent.ISO の作成前の検証チェック

Agent-based Installer は、ISO が作成される前に、ユーザー定義の YAML ファイルに対して検証チェックを実行します。検証に成功すると、agent.ISO が作成されます。

install-config.yaml

  • baremetalvsphere、および none プラットフォームがサポートされています。
  • none プラットフォームの場合、networkType パラメーターは OVNKubernetes である必要があります。
  • apiVIPs および ingressVIPs パラメーターは、ベアメタルおよび vSphere プラットフォームに設定する必要があります。
  • agent-config.yaml ファイルに相当するベアメタルプラットフォーム設定の一部のホスト固有フィールドは無視されます。これらのフィールドが設定されている場合、警告メッセージがログに記録されます。

agent-config.yaml

  • 各インターフェイスには、定義された MAC アドレスが必要です。また、すべてのインターフェイスに異なる MAC アドレスが必要です。
  • ホストごとに少なくとも 1 つのインターフェイスを定義する必要があります。
  • World Wide Name (WWN) ベンダーエクステンションは、ルートデバイスのヒントではサポートされません。
  • host オブジェクトの role パラメーターの値は master または worker のいずれかである必要があります。

1.11.1. ZTP マニフェスト

agent-cluster-install.yaml

  • IPv6 の場合、networkType パラメーターでサポートされる唯一の値は OVNKubernetes です。OpenShiftSDN 値は、IPv4 にのみ使用できます。

cluster-image-set.yaml

  • ReleaseImage パラメーターは、インストーラーで定義されるリリースと一致する必要があります。

1.12. 次のステップ

第2章 切断されたインストールのミラーリングについて

切断されたインストールにミラーレジストリーを使用して、クラスターが外部コンテンツに対する組織の制御を満たすコンテナーイメージのみを使用するようにすることができます。ネットワークが切断された環境でプロビジョニングするインフラストラクチャーにクラスターをインストールする前に、必要なコンテナーイメージをその環境にミラーリングする必要があります。コンテナーイメージをミラーリングするには、ミラーリング用のレジストリーが必要です。

2.1. Agent-based Installer による非接続インストールのイメージのミラーリング

以下の手順のいずれかを使用して、OpenShift Container Platform イメージリポジトリーをミラーレジストリーにミラーリングできます。

2.2. 切断されたレジストリーの OpenShift Container Platform イメージリポジトリーのミラーリング

Agent-based Installer による非接続インストールにミラーイメージを使用するには、install-config.yaml ファイルを変更する必要があります。

oc adm release mirror または oc mirror コマンドの出力を使用して、リリースイメージをミラーリングできます。これは、ミラーレジストリーの設定に使用したコマンドによって異なります。

次の例は、oc adm release mirror コマンドの出力を示しています。

$ oc adm release mirror

出力例

To use the new mirrored repository to install, add the following
section to the install-config.yaml:

imageContentSources:

mirrors:
virthost.ostest.test.metalkube.org:5000/localimages/local-release-image
source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
mirrors:
virthost.ostest.test.metalkube.org:5000/localimages/local-release-image
source: registry.ci.openshift.org/ocp/release

次の例は、oc-mirror プラグインによって生成された imageContentSourcePolicy.yaml ファイルの一部を示しています。このファイルは結果ディレクトリーにあります (例: oc-mirror-workspace/results-1682697932/)。

imageContentSourcePolicy.yaml ファイルの例

spec:
  repositoryDigestMirrors:
  - mirrors:
    - virthost.ostest.test.metalkube.org:5000/openshift/release
    source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
  - mirrors:
    - virthost.ostest.test.metalkube.org:5000/openshift/release-images
    source: quay.io/openshift-release-dev/ocp-release

2.2.1. ミラーリングされたイメージを使用するように Agent-based Installer を設定する

ミラーリングされたイメージを使用するように Agent-based Installer を設定するには、oc adm release mirror コマンドまたは oc-mirror プラグインの出力を使用する必要があります。

手順

  1. oc-mirror プラグインを使用してリリースイメージをミラーリングした場合:

    1. 結果ディレクトリーにある imageContentSourcePolicy.yaml を開きます (例: oc-mirror-workspace/results-1682697932/)。
    2. yaml ファイルの repositoryDigestMirrors セクションのテキストをコピーします。
  2. oc adm release mirror コマンドを使用してリリースイメージをミラーリングした場合:

    • コマンド出力の imageContentSources セクションのテキストをコピーします。
  3. コピーしたテキストを install-config.yaml ファイルの imageContentSources フィールドに貼り付けます。
  4. ミラーレジストリーに使用される証明書ファイルを yaml ファイルの additionalTrustBundle フィールドに追加します。

    重要

    この値は、ミラーレジストリーに使用した証明書ファイルの内容である必要があります。証明書ファイルは、既存の信頼できる認証局、またはミラーレジストリー用に生成した自己署名証明書のいずれかです。

    install-config.yaml ファイルの例

      additionalTrustBundle: |
        -----BEGIN CERTIFICATE-----
        ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
        -----END CERTIFICATE-----

  5. GitOps ZTP マニフェストを使用している場合: registries.conf および ca-bundle.crt ファイルを mirror パスに追加して、エージェント ISO イメージにミラー設定を追加します。

    注記

    oc adm release mirror コマンドまたは oc mirror プラグインの出力から registries.conf ファイルを作成できます。/etc/containers/registries.conf ファイルの形式が変更されました。現在のバージョンはバージョン 2 で、TOML 形式です。

    registries.conf ファイルの例

    [[registry]]
    location = "registry.ci.openshift.org/ocp/release" mirror-by-digest-only = true
    
    [[registry.mirror]] location = "virthost.ostest.test.metalkube.org:5000/localimages/local-release-image"
    
    [[registry]]
    location = "quay.io/openshift-release-dev/ocp-v4.0-art-dev" mirror-by-digest-only = true
    
    [[registry.mirror]] location = "virthost.ostest.test.metalkube.org:5000/localimages/local-release-image"

2.3. 関連情報

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

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

3.1. 前提条件

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

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

3.2.1. Agent-based Installer のダウンロード

この手順を使用して、インストールに必要な Agent-based Installer と 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 上のディレクトリーに配置します。

3.2.2. Agent-based インストールでサポートされるアーキテクチャーの確認

Agent-based Installer を使用して OpenShift Container Platform クラスターをインストールする前に、クラスターをインストールできるサポート対象アーキテクチャーを確認できます。この手順はオプションです。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • インストールプログラムをダウンロードした。

手順

  1. OpenShift CLI (oc) にログインします。
  2. 次のコマンドを実行して、リリースペイロードを確認します。

    $ ./openshift-install version

    出力例

    ./openshift-install 4.17.0
    built from commit abc123def456
    release image quay.io/openshift-release-dev/ocp-release@sha256:123abc456def789ghi012jkl345mno678pqr901stu234vwx567yz0
    release architecture amd64

    multi ペイロードが含まれるリリースイメージを使用している場合、このコマンドの出力に表示される release architecture はデフォルトのアーキテクチャーです。

  3. ペイロードのアーキテクチャーを確認するには、次のコマンドを実行します。

    $ oc adm release info <release_image> -o jsonpath="{ .metadata.metadata}" 1
    1
    <release_image> をリリースイメージに置き換えます。例: quay.io/openshift-release-dev/ocp-release@sha256:123abc456def789ghi012jkl345mno678pqr901stu234vwx567yz0

    リリースイメージが multi ペイロードを使用する場合の出力例

    {"release.openshift.io architecture":"multi"}

    multi ペイロードが含まれるリリースイメージを使用している場合は、arm64amd64s390xppc64le などのさまざまなアーキテクチャーにクラスターをインストールできます。それ以外の場合、クラスターは openshift-install version コマンドの出力に表示される release architecture にのみインストールできます。

3.2.3. 優先設定入力の作成

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

手順

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

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

    $ mkdir ~/<directory_name>
    注記

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

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

    $ cat << EOF > ./<directory_name>/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: 4
      none: {}
    pullSecret: '<pull_secret>' 5
    sshKey: '<ssh_pub_key>' 6
    EOF
    1
    システムアーキテクチャーを指定します。有効な値は、amd64arm64ppc64le、および s390x です。

    multi ペイロードが含まれるリリースイメージを使用している場合は、arm64amd64s390xppc64le などのさまざまなアーキテクチャーにクラスターをインストールできます。それ以外の場合、クラスターは openshift-install version コマンドの出力に表示される release architecture にのみインストールできます。詳細は、「Agent-based Installer クラスターをインストールするためのサポート対象アーキテクチャーを確認する」を参照してください。

    2
    必須。クラスター名を指定します。
    3
    インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
    4
    プラットフォームを指定します。
    注記

    ベアメタルプラットフォームの場合、agent-config.yaml ファイル上での設定でオーバーライドされない限り、install-config.yaml ファイルのプラットフォームセクションでのホスト設定がデフォルトで使用されます。

    5
    プルシークレットを指定します。
    6
    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

    注記

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

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

    $ cat > agent-config.yaml << EOF
    apiVersion: v1beta1
    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
    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 形式で設定します。

3.2.4. 追加のマニフェストファイルの作成

オプションのタスクとして、追加のマニフェストを作成し、install-config.yaml ファイルと agent-config.yaml ファイルで使用可能な設定を超えてクラスターをさらに設定できます。

3.2.4.1. 追加のマニフェストを格納するディレクトリーの作成

追加のマニフェストを作成して、install-config.yaml ファイルおよび agent-config.yaml ファイルを超えてエージェントベースのインストールを設定する場合は、インストールディレクトリー内に openshift サブディレクトリーを作成する必要があります。追加のマシン設定は、すべてこのサブディレクトリーに配置する必要があります。

注記

最も一般的な追加マニフェストのタイプは MachineConfig オブジェクトです。エージェントベースのインストール中に追加できる MachineConfig オブジェクトの例は、「関連情報」セクションの「MachineConfig オブジェクトを使用してノードを設定する」を参照してください。

手順

  • インストールホスト上で次のコマンドを実行して、インストールディレクトリー内に openshift サブディレクトリーを作成します。

    $ mkdir <installation_directory>/openshift
3.2.4.2. ディスクパーティション設定

通常は、RHCOS のインストール時に作成されるデフォルトのディスクパーティションを使用する必要があります。ただし、拡張するディレクトリーの個別のパーティションの作成が必要となる場合もあります。

OpenShift Container Platform は、ストレージを /var ディレクトリーまたは /var のサブディレクトリーのいずれかに割り当てる単一のパーティションの追加をサポートします。以下に例を示します。

  • /var/lib/containers: イメージやコンテナーがシステムにさらに追加されると拡張するコンテナー関連のコンテンツを保持します。
  • /var/lib/etcd: etcd ストレージのパフォーマンスの最適化などの目的で分離する必要のあるデータを保持します。
  • /var: 監査などの目的に合わせて分離させる必要のあるデータを保持します。

    重要

    ディスクサイズが 100 GB を超える場合、特に 1 TB を超える場合は、別の /var パーティションを作成します。

/var ディレクトリーのコンテンツを個別に保存すると、必要に応じてこれらの領域のストレージの拡大を容易にし、後で OpenShift Container Platform を再インストールして、そのデータをそのまま保持することができます。この方法では、すべてのコンテナーを再度プルする必要はありません。また、システムの更新時に大きなログファイルをコピーする必要もありません。

/var ディレクトリーまたは /var のサブディレクトリーの個別のパーティションを使用すると、パーティション設定されたディレクトリーでのデータの増加によりルートファイルシステムが一杯になることを避けることもできます。

以下の手順では、インストールの準備フェーズでノードタイプの Ignition 設定ファイルにラップされるマシン設定マニフェストを追加して、別の /var パーティションを設定します。

前提条件

  • インストールディレクトリー内に openshift サブディレクトリーを作成している。

手順

  1. 追加のパーティションを設定する Butane 設定を作成します。たとえば、$HOME/clusterconfig/98-var-partition.bu ファイルに名前を付け、ディスクのデバイス名を worker システムのストレージデバイスの名前に変更し、必要に応じてストレージサイズを設定します。以下の例では、/var ディレクトリーを別のパーティションにマウントします。

    variant: openshift
    version: 4.17.0
    metadata:
      labels:
        machineconfiguration.openshift.io/role: worker
      name: 98-var-partition
    storage:
      disks:
      - device: /dev/disk/by-id/<device_name> 1
        partitions:
        - label: var
          start_mib: <partition_start_offset> 2
          size_mib: <partition_size> 3
          number: 5
      filesystems:
        - device: /dev/disk/by-partlabel/var
          path: /var
          format: xfs
          mount_options: [defaults, prjquota] 4
          with_mount_unit: true
    1
    パーティションを設定する必要のあるディスクのストレージデバイス名。
    2
    データパーティションをブートディスクに追加する場合は、25000 のメビバイトの最小のオフセット値が推奨されます。ルートファイルシステムは、指定したオフセットまでの利用可能な領域をすべて埋めるためにサイズを自動的に変更します。オフセット値の指定がない場合や、指定した値が推奨される最小値よりも小さい場合、生成されるルートファイルシステムのサイズは小さ過ぎるため、RHCOS の再インストールでデータパーティションの最初の部分が上書きされる可能性があります。
    3
    データパーティションのサイズ (メビバイト単位)。
    4
    コンテナーストレージに使用されるファイルシステムでは、prjquota マウントオプションを有効にする必要があります。
    注記

    個別の /var パーティションを作成する場合、異なるインスタンスタイプに同じデバイス名がない場合は、コンピュートノードに異なるインスタンスタイプを使用することはできません。

  2. Butane config からマニフェストを作成し、clusterconfig/openshift ディレクトリーに保存します。たとえば、以下のコマンドを実行します。

    $ butane $HOME/clusterconfig/98-var-partition.bu -o $HOME/clusterconfig/openshift/98-var-partition.yaml

3.2.5. 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>
    重要

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

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

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

関連情報

3.2.6. ディスクの暗号化

オプションのタスクとして、Agent-based Installer を使用して OpenShift Container Platform をインストールするときに、この手順を使用してディスクまたはパーティションを暗号化できます。

前提条件

  • ZTP マニフェストを使用している場合を除き、install-config.yaml ファイルと agent-config.yaml ファイルが作成および設定されていること。
  • 使用する PATH 上のディレクトリーに openshift-install バイナリーを配置している。

手順

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

    $ openshift-install agent create cluster-manifests --dir <installation_directory>
    重要

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

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

    注記

    すでに ZTP マニフェストを生成している場合は、この手順をスキップしてください。

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

    $ cd <installation_directory>/cluster-manifests
  3. 次のセクションを agent-cluster-install.yaml ファイルに追加します。

    diskEncryption:
        enableOn: all 1
        mode: tang 2
        tangServers: "server1": "http://tang-server-1.example.com:7500" 3
    1
    ディスク暗号化を有効にするノードを指定します。有効な値は noneallmasterworker です。
    2
    使用するディスク暗号化モードを指定します。有効な値は tpmv2 および tang です。
    3
    オプション: Tang を使用している場合は、Tang サーバーを指定します。

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

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

手順

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

    $ openshift-install --dir <install_directory> agent create image
    注記

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

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

3.2.8. RHEL KVM を使用した IBM Z エージェントの追加

RHEL KVM を使用して IBM Z® エージェントを手動で追加するには、次の手順を使用します。この手順は、RHEL KVM を使用する IBM Z® クラスターにのみ使用してください。

注記

KVM ブートには nmstateconfig パラメーターを設定する必要があります。

手順

  1. RHEL KVM マシンを起動します。
  2. 仮想サーバーをデプロイするために、次のパラメーターを指定して virt-install コマンドを実行します。

    $ virt-install
        --name <vm_name> \
        --autostart \
        --memory=<memory> \
        --cpu host \
        --vcpus=<vcpus> \
        --cdrom <agent_iso_image> \ 1
        --disk pool=default,size=<disk_pool_size> \
        --network network:default,mac=<mac_address> \
        --graphics none \
        --noautoconsole \
        --os-variant rhel9.0 \
        --wait=-1
    1
    --cdrom パラメーターには、HTTP または HTTPS サーバー上の ISO イメージの場所を指定します。

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

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

一次プルチェックに合格した場合は、アプリケーションを終了して、インストールを続行できます。プルチェックが失敗した場合、アプリケーションは、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 を選択して、エージェントコンソールアプリケーションを終了し、インストールを続行します。

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

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

前提条件

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

手順

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

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

    出力例

    ...................................................................
    ...................................................................
    INFO Bootstrap configMap status is complete
    INFO cluster bootstrap is complete

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

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

    $ openshift-install --dir <install_directory> agent wait-for install-complete 1
    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

注記

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.17
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

関連情報

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.17
    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>

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

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

apiVersion: hive.openshift.io/v1
kind: ClusterImageSet
metadata:
  name: openshift-4.17
spec:
  releaseImage: registry.ci.openshift.org/ocp/release:4.17.0-0.nightly-2022-06-06-025509

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

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

pull-secret.yaml ファイルの例

apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
  name: pull-secret
  namespace: cluster0
stringData:
  .dockerconfigjson: <pull_secret>

関連情報

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

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

前提条件

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

手順

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

    $ ./openshift-install --dir <installation_directory> agent wait-for bootstrap-complete --log-level=debug

    エラーメッセージの例

    ...
    ERROR Bootstrap failed to complete: : bootstrap process timed out: context deadline exceeded

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

    $ ssh core@<node-ip> agent-gather -O >agent-gather.tar.xz
    注記

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

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

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

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

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

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

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

第4章 OpenShift Container Platform 用の PXE アセットの準備

Agent-based Installer を使用して OpenShift Container Platform クラスターを PXE ブートするために必要なアセットを作成するには、以下の手順を使用します。

これらの手順で作成したアセットは、単一ノードの OpenShift Container Platform インストールをデプロイします。これらの手順を基礎として使用し、要件に応じて設定を変更できます。

Agent-based Installer で使用できるその他の設定は、Agent-based Installer を使用した OpenShift Container Platform クラスターのインストール を参照してください。

4.1. 前提条件

4.2. Agent-based Installer のダウンロード

この手順を使用して、インストールに必要な Agent-based Installer と 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 上のディレクトリーに配置します。

4.3. 優先設定入力の作成

この手順を使用して、PXE ファイルの作成に使用される優先設定入力を作成します。

手順

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

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

    $ mkdir ~/<directory_name>
    注記

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

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

    $ cat << EOF > ./<directory_name>/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: 4
      none: {}
    pullSecret: '<pull_secret>' 5
    sshKey: '<ssh_pub_key>' 6
    EOF
    1
    システムアーキテクチャーを指定します。有効な値は、amd64arm64ppc64le、および s390x です。

    multi ペイロードが含まれるリリースイメージを使用している場合は、arm64amd64s390xppc64le などのさまざまなアーキテクチャーにクラスターをインストールできます。それ以外の場合、クラスターは openshift-install version コマンドの出力に表示される release architecture にのみインストールできます。詳細は、「Agent-based Installer クラスターをインストールするためのサポート対象アーキテクチャーを確認する」を参照してください。

    2
    必須。クラスター名を指定します。
    3
    インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
    4
    プラットフォームを指定します。
    注記

    ベアメタルプラットフォームの場合、agent-config.yaml ファイル上での設定でオーバーライドされない限り、install-config.yaml ファイルのプラットフォームセクションでのホスト設定がデフォルトで使用されます。

    5
    プルシークレットを指定します。
    6
    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

    注記

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

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

    $ cat > agent-config.yaml << EOF
    apiVersion: v1beta1
    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
    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 形式で設定します。
  6. オプション: iPXE スクリプトを作成するには、bootArtifactsBaseURLagent-config.yaml ファイルに追加します。

    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80
    bootArtifactsBaseURL: <asset_server_URL>

    <asset_server_URL> は、PXE アセットをアップロードするサーバーの URL です。

4.4. PXE アセットの作成

次の手順を使用して、PXE インフラストラクチャーに実装するアセットとオプションのスクリプトを作成します。

手順

  1. 次のコマンドを実行して、PXE アセットを作成します。

    $ openshift-install agent create pxe-files

    生成された PXE アセットと任意の iPXE スクリプトは、boot-artifacts ディレクトリーにあります。

    PXE アセットとオプションの iPXE スクリプトを含むファイルシステムの例

    boot-artifacts
        ├─ agent.x86_64-initrd.img
        ├─ agent.x86_64.ipxe
        ├─ agent.x86_64-rootfs.img
        └─ agent.x86_64-vmlinuz

    重要

    boot-artifacts ディレクトリーの内容は、指定したアーキテクチャーによって異なります。

    注記

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

  2. PXE アセットと任意のスクリプトをインフラストラクチャーにアップロードし、ブートプロセス中にアクセスできるようにします。

    注記

    iPXE スクリプトを生成した場合、アセットの場所は、agent-config.yaml ファイルに追加した bootArtifactsBaseURL と一致する必要があります。

4.5. IBM Z エージェントの手動追加

PXE アセットを作成した後、IBM Z® エージェントを追加できます。この手順は、IBM Z® クラスターにのみ使用してください。

IBM Z® 環境に応じて、以下の方法から選択できます。

  • z/VM を使用した IBM Z® エージェントの追加
  • RHEL KVM を使用した IBM Z® エージェントの追加
  • 論理パーティション (LPAR) を使用した IBM Z® エージェントの追加
注記

現在、IBM Z® (s390x) 上の ISO ブートサポートは Red Hat Enterprise Linux (RHEL) KVM でのみ利用できます。RHEL KVM では、PXE ベースのインストールか ISO ベースのインストールのどちらかを柔軟に選択できます。z/VM および論理パーティション (LPAR) を使用したインストールでは、PXE ブートのみがサポートされます。

4.5.1. IBM Z のネットワーク要件

IBM Z 環境では、Open Systems Adapter (OSA)、HiperSockets、Remote Direct Memory Access (RDMA) over Converged Ethernet (RoCE) などの高度なネットワークテクノロジーでは、標準のネットワーク設定とは異なる特定の設定が必要であり、エージェントベースのインストールで発生する複数のブートシナリオに対してそれらの設定が保持される必要があります。

起動中にこれらのパラメーターを保持するには、paramlineai.ip_cfg_override=1 パラメーターが必要です。このパラメーターは、IBM Z での正常かつ効率的なデプロイメントを確実にするために、設定されたネットワークカードで使用されます。

次の表は、ネットワーク設定のオーバーライド機能について各ハイパーバイザーでサポートされているネットワークデバイスを示しています。

ネットワークデバイスz/VMKVMLPAR ClassicLPAR Dynamic Partition Manager (DPM)

Virtual Switch

サポート対象 [1]

該当なし [2]

該当なし

該当なし

直接接続 Open Systems Adapter (OSA)

サポート対象

不要 [3]

サポート対象

不要

コンバージドイーサネット上 RDMA (RoCE)

不要

不要

不要

不要

HiperSockets

サポート対象

不要

サポート対象

不要

  1. サポート対象: インストール手順に ai.ip_cfg_override パラメーターが必要な場合。
  2. 該当なし: ネットワークカードがハイパーバイザーで使用できない場合。
  3. 不要: インストール手順で ai.ip_cfg_override パラメーターが必要ない場合。

4.5.2. IBM Z でのネットワークオーバーライドの設定

論理パーティション(LPAR)および z/VM を使用する IBM Z マシンでは、静的 IP アドレスを指定できます。これは、ネットワークデバイスに静的 MAC アドレスが割り当てられていない場合に便利です。

手順

  • 既存の .parm ファイルがある場合は、次のエントリーを追加するように編集します。

    ai.ip_cfg_override=1

    このパラメーターにより、ファイルは CoreOS インストーラーにネットワーク設定を追加できます。

    .parm ファイルの例

    rd.neednet=1 cio_ignore=all,!condev
    console=ttysclp0
    coreos.live.rootfs_url=<coreos_url> 1
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns>
    rd.znet=qeth,<network_adaptor_range>,layer2=1
    rd.<disk_type>=<adapter> 2
    rd.zfcp=<adapter>,<wwpn>,<lun> random.trust_cpu=on 3
    zfcp.allow_lun_scan=0
    ai.ip_cfg_override=1
    ignition.firstboot ignition.platform.id=metal
    random.trust_cpu=on

    1
    coreos.live.rootfs_url アーティファクトには、起動する kernelinitramfs に合った rootfs アーティファクトを指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    2
    direct access storage device (DASD) タイプのディスクにインストールする場合は、rd. を使用して、Red Hat Enterprise Linux CoreOS (RHCOS) をインストールする DASD を指定します。Fibre Channel Protocol (FCP) ディスクにインストールする場合は、rd.zfcp=<adapter>,<wwpn>,<lun> を使用して、{rhel} のインストール先となる FCP ディスクを指定します。
    3
    rd.zfcp=0.0.8002,0x500507630400d1e3,0x4000404600000000 の例のように、adapterwwpn、および lun の値を指定します。
注記

override パラメーターは、ホストのネットワーク設定をオーバーライドします。

4.5.3. z/VM を使用した IBM Z エージェントの追加

z/VM を使用して IBM Z® エージェントを手動で追加するには、次の手順を使用します。この手順は、z/VM を使用する IBM Z® クラスターにのみ使用してください。

前提条件

  • ゲスト仮想マシンにアクセスできる実行中のファイルサーバー。

手順

  1. z/VM ゲストのパラメーターファイルを作成します。

    パラメーターファイルの例

    rd.neednet=1 \
    console=ttysclp0 \
    coreos.live.rootfs_url=<rootfs_url> \ 1
    ip=172.18.78.2::172.18.78.1:255.255.255.0:::none nameserver=172.18.78.1 \ 2
    zfcp.allow_lun_scan=0 \ 3
    ai.ip_cfg_override=1 \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.dasd=0.0.4411 \ 4
    rd.zfcp=0.0.8001,0x50050763040051e3,0x4000406300000000 \ 5
    random.trust_cpu=on rd.luks.options=discard \
    ignition.firstboot ignition.platform.id=metal \
    console=tty1 console=ttyS1,115200n8 \
    coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8"

    1
    coreos.live.rootfs_url アーティファクトには、起動する kernelinitramfs に合った rootfs アーティファクトを指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    2
    ip= パラメーターには、DHCP を使用して自動的に IP アドレスを割り当てるか、「z/VM を使用したクラスターの IBM Z® および IBM® LinuxONE へのインストール」の説明に従って手動で割り当てます。
    3
    デフォルトは 1 です。OSA ネットワークアダプターを使用する場合は、このエントリーを省略してください。
    4
    DASD タイプのディスクにインストールする場合は、rd.dasd を使用して、Red Hat Enterprise Linux CoreOS (RHCOS) をインストールする DASD を指定します。FCP タイプのディスクの場合は、このエントリーを省略します。
    5
    FCP タイプのディスクにインストールする場合は、rd.zfcp=<adapter>,<wwpn>,<lun> を使用して、RHCOS がインストールされる FCP ディスクを指定します。DASD タイプのディスクの場合は、このエントリーを省略します。

    その他のパラメーターはすべて変更しません。

  2. z/VM ゲスト仮想マシンの仮想リーダーに対して、kernel.imggeneric.parm、および initrd.img ファイルの punch を実行します。

    詳細は、PUNCH (IBM ドキュメント) を参照してください。

    ヒント

    CP PUNCH コマンドを使用するか、Linux を使用している場合は vmur コマンドを使用して、2 つの z/VM ゲスト仮想マシン間でファイルを転送できます。

  3. ブートストラップマシン上の会話型モニターシステム (CMS) にログインします。
  4. 次のコマンドを実行して、リーダーからブートストラップマシンを IPL します。

    $ ipl c

    詳細は、IPL (IBM ドキュメント) を参照してください。

4.5.4. RHEL KVM を使用した IBM Z エージェントの追加

RHEL KVM を使用して IBM Z® エージェントを手動で追加するには、次の手順を使用します。この手順は、RHEL KVM を使用する IBM Z® クラスターにのみ使用してください。

注記

KVM ブートには nmstateconfig パラメーターを設定する必要があります。

手順

  1. RHEL KVM マシンを起動します。
  2. 仮想サーバーをデプロイするために、次のパラメーターを指定して virt-install コマンドを実行します。

    $ virt-install \
       --name <vm_name> \
       --autostart \
       --ram=16384 \
       --cpu host \
       --vcpus=8 \
       --location <path_to_kernel_initrd_image>,kernel=kernel.img,initrd=initrd.img \1
       --disk <qcow_image_path> \
       --network network:macvtap ,mac=<mac_address> \
       --graphics none \
       --noautoconsole \
       --wait=-1 \
       --extra-args "rd.neednet=1 nameserver=<nameserver>" \
       --extra-args "ip=<IP>::<nameserver>::<hostname>:enc1:none" \
       --extra-args "coreos.live.rootfs_url=http://<http_server>:8080/agent.s390x-rootfs.img" \
       --extra-args "random.trust_cpu=on rd.luks.options=discard" \
       --extra-args "ignition.firstboot ignition.platform.id=metal" \
       --extra-args "console=tty1 console=ttyS1,115200n8" \
       --extra-args "coreos.inst.persistent-kargs=console=tty1 console=ttyS1,115200n8" \
       --osinfo detect=on,require=off
    1
    --location パラメーターには、HTTP または HTTPS サーバー上の kernel/initrd の場所を指定します。

4.5.5. 論理パーティション (LPAR) への IBM Z エージェントの追加

LPAR 環境で実行されるクラスターに IBM Z® エージェントを手動で追加するには、次の手順に従います。この手順は、LPAR で実行される IBM Z® クラスターに対してのみ使用してください。

前提条件

  • Python 3 がインストールされている。
  • 論理パーティション (LPAR) にアクセスできる実行中のファイルサーバー。

手順

  1. エージェントのブートパラメーターファイルを作成します。

    パラメーターファイルの例

    rd.neednet=1 cio_ignore=all,!condev \
    console=ttysclp0 \
    ignition.firstboot ignition.platform.id=metal
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \1
    coreos.inst.persistent-kargs=console=ttysclp0
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \2
    rd.znet=qeth,<network_adaptor_range>,layer2=1
    rd.<disk_type>=<adapter> \3
    zfcp.allow_lun_scan=0
    ai.ip_cfg_override=1 \//
    random.trust_cpu=on rd.luks.options=discard

    1
    coreos.live.rootfs_url アーティファクトには、起動する kernelinitramfs に合った rootfs アーティファクトを指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    2
    ip パラメーターは、z/VM を使用したクラスターの IBM Z および IBM IBM® LinuxONE へのインストール の説明に従って、IP アドレスを手動で割り当てます。
    3
    DASD タイプのディスクにインストールする場合は、rd.dasd を使用して、Red Hat Enterprise Linux CoreOS (RHCOS) をインストールする DASD を指定します。FCP タイプのディスクにインストールする場合は、rd.zfcp=<adapter>,<wwpn>,<lun> を使用して、RHCOS がインストールされる FCP ディスクを指定します。
    注記

    .ins および initrd.img.addrsize ファイルは、インストールプログラムからのブートアーティファクトの一部として s390x アーキテクチャー用に自動的に生成され、LPAR 環境でのブート時にのみ使用されます。

    LPAR ブートによるファイルシステムの例

    boot-artifacts
        ├─ agent.s390x-generic.ins
        ├─ agent.s390x-initrd.addrsize
        ├─ agent.s390x-rootfs.img
        └─ agent.s390x-kernel.img
        └─ agent.s390x-rootfs.img

  2. initrdkernelgeneric.ins、および initrd.img.addrsize パラメーターファイルをファイルサーバーに転送します。詳細は、Booting Linux in LPAR mode (IBM ドキュメント) を参照してください。
  3. マシンを起動します。
  4. クラスター内の他のマシンすべてに対してこの手順を繰り返します。

第5章 Kubernetes Operator のマルチクラスターエンジン用の Agent ベースのインストール済みクラスターの準備

マルチクラスターエンジン Operator をインストールし、エージェントベースの OpenShift Container Platform インストーラーを使用してハブクラスターをデプロイできます。次の手順は部分的に自動化されており、最初のクラスターがデプロイメントされた後に手動の手順が必要です。

5.1. 前提条件

5.2. 切断中の Kubernetes Operator のマルチクラスターエンジン用のエージェントベースのクラスターデプロイの準備

切断された環境で、必要な OpenShift Container Platform コンテナーイメージ、マルチクラスターエンジン Operator、および Local Storage Operator (LSO) をローカルミラーレジストリーにミラーリングできます。ミラーレジストリーのローカル DNS ホスト名とポートを必ず書き留めておいてください。

注記

OpenShift Container Platform イメージリポジトリーをミラーレジストリーにミラーリングするには、oc adm release image または oc mirror コマンドを使用できます。この手順では、oc mirror コマンドを例として使用します。

手順

  1. <assets_directory> フォルダーを作成して、有効な install-config.yaml および agent-config.yaml ファイルを含めます。このディレクトリーは、すべてのアセットを格納するために使用されます。
  2. OpenShift Container Platform イメージリポジトリー、マルチクラスターエンジン、および LSO をミラーリングするには、以下の設定で ImageSetConfiguration.yaml ファイルを作成します。

    ImageSetConfiguration.yaml の例

      kind: ImageSetConfiguration
      apiVersion: mirror.openshift.io/v1alpha2
      archiveSize: 4 1
      storageConfig: 2
        imageURL: <your-local-registry-dns-name>:<your-local-registry-port>/mirror/oc-mirror-metadata 3
        skipTLS: true
      mirror:
        platform:
          architectures:
            - "amd64"
          channels:
            - name: stable-4.17 4
              type: ocp
        additionalImages:
          - name: registry.redhat.io/ubi9/ubi:latest
        operators:
          - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.17 5
            packages: 6
              - name: multicluster-engine 7
              - name: local-storage-operator 8

    1
    イメージセット内の各ファイルの最大サイズを GiB 単位で指定します。
    2
    イメージセットのメタデータを受け取るバックエンドの場所を設定します。この場所は、レジストリーまたはローカルディレクトリーにすることができます。storageConfig値を指定する必要があります。
    3
    ストレージバックエンドのレジストリー URL を設定します。
    4
    インストールするバージョンの OpenShift Container Platform イメージを含むチャネルを設定します。
    5
    インストールする OpenShift Container Platform イメージを含む Operator カタログを設定します。
    6
    イメージセットに含める特定の Operator パッケージとチャネルのみを指定します。カタログ内のすべてのパッケージを取得するには、このフィールドを削除してください。
    7
    マルチクラスターエンジンのパッケージとチャネル。
    8
    LSO パッケージとチャネル。
    注記

    このファイルは、コンテンツをミラーリングするときに oc mirror コマンドで必要になります。

  3. 特定の OpenShift Container Platform イメージリポジトリー、マルチクラスターエンジン、および LSO をミラーリングするには、以下のコマンドを実行します。

    $ oc mirror --dest-skip-tls --config ocp-mce-imageset.yaml docker://<your-local-registry-dns-name>:<your-local-registry-port>
  4. install-config.yaml ファイルのレジストリーと証明書を更新します。

    Example imageContentSources.yaml

      imageContentSources:
        - source: "quay.io/openshift-release-dev/ocp-release"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/openshift/release-images"
        - source: "quay.io/openshift-release-dev/ocp-v4.0-art-dev"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/openshift/release"
        - source: "registry.redhat.io/ubi9"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/ubi9"
        - source: "registry.redhat.io/multicluster-engine"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/multicluster-engine"
        - source: "registry.redhat.io/rhel8"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/rhel8"
        - source: "registry.redhat.io/redhat"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/redhat"

    さらに、証明書が install-config.yamladditionalTrustBundle フィールドに存在することを確認してください。

    install-config.yaml の例

    additionalTrustBundle: |
      -----BEGIN CERTIFICATE-----
      zzzzzzzzzzz
      -----END CERTIFICATE-------

    重要

    oc mirror コマンドは、いくつかの出力を含む oc-mirror-workspace というフォルダーを作成します。これには、OpenShift Container Platform および選択した Operator に必要なすべてのミラーを識別する imageContentSourcePolicy.yaml ファイルが含まれます。

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

    $ openshift-install agent create cluster-manifests

    このコマンドは、クラスターマニフェストフォルダーを更新して、ミラー設定を含むmirror フォルダーを含めます。

5.3. 接続中の Kubernetes Operator のマルチクラスターエンジン用のエージェントベースのクラスターデプロイメントの準備

マルチクラスターエンジン Operator である Local Storage Operator (LSO) に必要なマニフェストを作成し、エージェントベースの OpenShift Container Platform クラスターをハブクラスターとしてデプロイします。

手順

  1. <assets_directory> フォルダーに openshift という名前のサブフォルダーを作成します。このサブフォルダーは、デプロイされたクラスターをさらにカスタマイズするためにインストール中に適用される追加のマニフェストを格納するために使用されます。<assets_directory> フォルダーには、install-config.yaml および agent-config.yaml ファイルを含むすべてのアセットが含まれています。

    注記

    インストーラーは、追加のマニフェストを検証しません。

  2. マルチクラスターエンジンの場合、以下のマニフェストを作成し、それらを <assets_directory>/openshift フォルダーに保存します。

    mce_namespace.yaml

      apiVersion: v1
      kind: Namespace
      metadata:
        labels:
          openshift.io/cluster-monitoring: "true"
        name: multicluster-engine

    mce_operatorgroup.yaml

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: multicluster-engine-operatorgroup
        namespace: multicluster-engine
      spec:
        targetNamespaces:
        - multicluster-engine

    mce_subscription.yaml

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: multicluster-engine
        namespace: multicluster-engine
      spec:
        channel: "stable-2.3"
        name: multicluster-engine
        source: redhat-operators
        sourceNamespace: openshift-marketplace

    注記

    Assisted Installer (AI) を使用して、Red Hat Advanced Cluster Management (RHACM) で分散ユニット (DU) を大規模にインストールできます。これらの分散ユニットは、ハブクラスターで有効にする必要があります。AI サービスには、手動で作成される永続ボリューム (PV) が必要です。

  3. AI サービスの場合、以下のマニフェストを作成し、それらを <assets_directory>/openshift フォルダーに保存します。

    Example lso_namespace.yaml

      apiVersion: v1
      kind: Namespace
      metadata:
        annotations:
          openshift.io/cluster-monitoring: "true"
        name: openshift-local-storage

    Example lso_operatorgroup.yaml

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: local-operator-group
        namespace: openshift-local-storage
      spec:
        targetNamespaces:
          - openshift-local-storage

    Example lso_subscription.yaml

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: local-storage-operator
        namespace: openshift-local-storage
      spec:
        installPlanApproval: Automatic
        name: local-storage-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace

    注記

    すべてのマニフェストを作成した後、ファイルシステムは次のように表示される必要があります。

    例: ファイルシステム

    <assets_directory>
        ├─ install-config.yaml
        ├─ agent-config.yaml
        └─ /openshift
            ├─ mce_namespace.yaml
            ├─ mce_operatorgroup.yaml
            ├─ mce_subscription.yaml
            ├─ lso_namespace.yaml
            ├─ lso_operatorgroup.yaml
            └─ lso_subscription.yaml

  4. 次のコマンドを実行して、エージェント ISO イメージを作成します。

    $ openshift-install agent create image --dir <assets_directory>
  5. イメージの準備ができたら、ターゲットマシンを起動し、インストールが完了するまで待ちます。
  6. インストールを監視するには、次のコマンドを実行します。

    $ openshift-install agent wait-for install-complete --dir <assets_directory>
    注記

    完全に機能するハブクラスターを設定するには、次のマニフェストを作成し、コマンド $ oc apply -f <manifest-name> を実行して手動で適用する必要があります。マニフェストの作成順序は重要であり、必要に応じて待機状態が表示されます。

  7. AI サービスに必要な PV については、次のマニフェストを作成します。

      apiVersion: local.storage.openshift.io/v1
      kind: LocalVolume
      metadata:
       name: assisted-service
       namespace: openshift-local-storage
      spec:
       logLevel: Normal
       managementState: Managed
       storageClassDevices:
         - devicePaths:
             - /dev/vda
             - /dev/vdb
           storageClassName: assisted-service
           volumeMode: Filesystem
  8. 後続のマニフェストを適用する前に、次のコマンドを使用して PV が使用可能になるまで待機します。

    $ oc wait localvolume -n openshift-local-storage assisted-service --for condition=Available --timeout 10m
    注記
    The `devicePath` is an example and may vary depending on the actual hardware configuration used.
  9. マルチクラスターエンジンインスタンスのマニフェストを作成します。

    Example MultiClusterEngine.yaml

      apiVersion: multicluster.openshift.io/v1
      kind: MultiClusterEngine
      metadata:
        name: multiclusterengine
      spec: {}

  10. マニフェストを作成して AI サービスを有効にします。

    agentserviceconfig.yaml

      apiVersion: agent-install.openshift.io/v1beta1
      kind: AgentServiceConfig
      metadata:
        name: agent
        namespace: assisted-installer
      spec:
       databaseStorage:
        storageClassName: assisted-service
        accessModes:
        - ReadWriteOnce
        resources:
         requests:
          storage: 10Gi
       filesystemStorage:
        storageClassName: assisted-service
        accessModes:
        - ReadWriteOnce
        resources:
         requests:
          storage: 10Gi

  11. 後続のスポーククラスターをデプロイするためのマニフェストを作成します。

    clusterimageset.yaml

      apiVersion: hive.openshift.io/v1
      kind: ClusterImageSet
      metadata:
        name: "4.17"
      spec:
        releaseImage: quay.io/openshift-release-dev/ocp-release:4.17.0-x86_64

  12. マニフェストを作成して、エージェントがインストールされたクラスター (マルチクラスターエンジンと Assisted Service をホストするクラスター) をハブクラスターとしてインポートします。

    autoimport.yaml

      apiVersion: cluster.open-cluster-management.io/v1
      kind: ManagedCluster
      metadata:
       labels:
         local-cluster: "true"
         cloud: auto-detect
         vendor: auto-detect
       name: local-cluster
      spec:
       hubAcceptsClient: true

  13. マネージドクラスターが作成されるまで待ちます。

    $ oc wait -n multicluster-engine managedclusters local-cluster --for condition=ManagedClusterJoined=True --timeout 10m

検証

  • マネージドクラスターのインストールが成功したことを確認するには、次のコマンドを実行します。

    $ oc get managedcluster
    NAME            HUB ACCEPTED   MANAGED CLUSTER URLS             JOINED   AVAILABLE  AGE
    local-cluster   true           https://<your cluster url>:6443   True     True       77m

第6章 Agent-based Installer のインストール設定パラメーター

Agent-based Installer を使用して OpenShift Container Platform クラスターをデプロイする前に、クラスターとそれをホストするプラットフォームをカスタマイズするパラメーターを指定します。install-config.yaml ファイルと agent-config.yaml ファイルの作成時に、必須パラメーターの値を指定する必要があります。オプションのパラメーターを使用してクラスターをさらにカスタマイズできます。

6.1. 使用可能なインストール設定パラメーター

次の表に、エージェントベースのインストールプロセスの一部として設定できる必須およびオプションのインストール設定パラメーターを示します。

これらの値は、install-config.yaml ファイルに指定されます。

注記

これらの設定はインストールのみに使用され、インストール後は変更できません。

6.1.1. 必須設定パラメーター

必須のインストール設定パラメーターは、以下の表で説明されています。

表6.1 必須パラメーター
パラメーター説明
apiVersion:

install-config.yaml コンテンツの API バージョン。現在のバージョンは v1 です。インストールプログラムは、古い API バージョンもサポートしている場合があります。

文字列

baseDomain:

クラウドプロバイダーのベースドメイン。ベースドメインは、OpenShift Container Platform クラスターコンポーネントへのルートを作成するために使用されます。クラスターの完全な DNS 名は、baseDomain<metadata.name>.<baseDomain> 形式を使用する metadata.name パラメーターの値の組み合わせです。

example.com などの完全修飾ドメインまたはサブドメイン名。

metadata:

Kubernetes リソース ObjectMeta。ここからは name パラメーターのみが消費されます。

オブジェクト

metadata:
  name:

クラスターの名前。クラスターの DNS レコードはすべて {{.metadata.name}}.{{.baseDomain}} のサブドメインです。install-config.yaml ファイルまたは agent-config.yaml ファイルのいずれかを介して metadata.name を指定しない場合 (たとえば、ZTP マニフェストのみを使用する場合)、クラスター名は agent-cluster に設定されます。

dev などの小文字、ハイフン (-)、およびピリオド (.) が含まれる文字列。

platform:

インストールの実行に使用する特定プラットフォームの設定: baremetalexternalnone、または vsphere

オブジェクト

pullSecret:

Red Hat OpenShift Cluster Manager からプルシークレット を取得して、Quay.io などのサービスから OpenShift Container Platform コンポーネントのコンテナーイメージをダウンロードすることを認証します。

{
   "auths":{
      "cloud.openshift.com":{
         "auth":"b3Blb=",
         "email":"you@example.com"
      },
      "quay.io":{
         "auth":"b3Blb=",
         "email":"you@example.com"
      }
   }
}

6.1.2. ネットワーク設定パラメーター

既存のネットワークインフラストラクチャーの要件に基づいて、インストール設定をカスタマイズできます。たとえば、クラスターネットワークの IP アドレスブロックを拡張するか、デフォルトとは異なる IP アドレスブロックを指定できます。

クラスターのネットワークパラメーターを設定する前に、次の情報を考慮してください。

  • Red Hat OpenShift Networking OVN-Kubernetes ネットワークプラグインを使用する場合、IPv4 と IPv6 の両方のアドレスファミリーがサポートされます。
  • IPv4 アドレスと非リンクローカル IPv6 アドレスの両方をサポートするネットワークを持つ OpenShift Container Platform クラスターにノードをデプロイした場合は、デュアルスタックネットワークを使用するようにクラスターを設定します。

    • デュアルスタックネットワークに設定されたクラスターでは、IPv4 と IPv6 の両方のトラフィックがデフォルトゲートウェイとして同じネットワークインターフェイスを使用する必要があります。これにより、複数のネットワークインターフェイスコントローラー (NIC) 環境で、使用可能なネットワークインターフェイスに基づいて、使用する NIC をクラスターが検出できるようになります。詳細は、OVN-Kubernetes ネットワークプラグインについて の「OVN-Kubernetes IPv6 とデュアルスタックの制限」を参照してください。
    • ネットワーク接続の問題を防ぐために、デュアルスタックネットワークをサポートするホストにシングルスタック IPv4 クラスターをインストールしないでください。

両方の IP アドレスファミリーを使用するようにクラスターを設定する場合は、次の要件を確認してください。

  • どちらの IP ファミリーも、デフォルトゲートウェイに同じネットワークインターフェイスを使用する必要があります。
  • 両方の IP ファミリーにデフォルトゲートウェイが必要です。
  • すべてのネットワーク設定パラメーターに対して、IPv4 アドレスと IPv6 アドレスを同じ順序で指定する必要があります。たとえば、以下の設定では、IPv4 アドレスは IPv6 アドレスの前に記載されます。

    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      - cidr: fd00:10:128::/56
        hostPrefix: 64
      serviceNetwork:
      - 172.30.0.0/16
      - fd00:172:16::/112
表6.2 ネットワークパラメーター
パラメーター説明
networking:

クラスターのネットワークの設定。

オブジェクト

注記

インストール後に networking オブジェクトで指定したパラメーターを変更することはできません。

networking:
  networkType:

インストールする Red Hat OpenShift Networking ネットワークプラグイン。

OVNKubernetesOVNKubernetes は、Linux ネットワークと、Linux サーバーと Windows サーバーの両方を含む Linux ネットワークおよびハイブリッドネットワーク用の CNI プラグインです。デフォルトの値は OVNKubernetes です。

networking:
  clusterNetwork:

Pod の IP アドレスブロック。

デフォルト値は 10.128.0.0/14 で、ホストの接頭辞は /23 です。

複数の IP アドレスブロックを指定する場合は、ブロックが重複しないようにしてください。

オブジェクトの配列。以下に例を示します。

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  - cidr: fd01::/48
    hostPrefix: 64
networking:
  clusterNetwork:
    cidr:

networking.clusterNetwork を使用する場合に必須です。IP アドレスブロック。

OVN-Kubernetes ネットワークプラグインを使用する場合は、IPv4 および IPv6 ネットワークを指定できます。

CIDR (Classless Inter-Domain Routing) 表記の IP アドレスブロック。IPv4 ブロックの接頭辞長は 0 から 32 の間になります。IPv6 ブロックの接頭辞長は 0 から 128 までです。例: 10.128.0.0/14 または fd01::/48

networking:
  clusterNetwork:
    hostPrefix:

それぞれの個別ノードに割り当てるサブネット接頭辞長。たとえば、hostPrefix23 に設定される場合、各ノードに指定の cidr から /23 サブネットが割り当てられます。hostPrefix 値の 23 は、510 (2^(32 - 23) - 2) Pod IP アドレスを提供します。

サブネット接頭辞。

IPv4 ネットワークの場合、デフォルト値は 23 です。IPv6 ネットワークの場合、デフォルト値は 64 です。デフォルト値は、IPv6 の最小値でもあります。

networking:
  serviceNetwork:

サービスの IP アドレスブロック。デフォルト値は 172.30.0.0/16 です。

OVN-Kubernetes ネットワークプラグインは、サービスネットワークに対して単一の IP アドレスブロックのみをサポートします。

OVN-Kubernetes ネットワークプラグインを使用する場合、IPv4 および IPv6 アドレスファミリーの両方に IP アドレスブロックを指定できます。

CIDR 形式の IP アドレスブロックを持つ配列。以下に例を示します。

networking:
  serviceNetwork:
   - 172.30.0.0/16
   - fd02::/112
networking:
  machineNetwork:

マシンの IP アドレスブロック。

複数の IP アドレスブロックを指定する場合は、ブロックが重複しないようにしてください。

オブジェクトの配列。以下に例を示します。

networking:
  machineNetwork:
  - cidr: 10.0.0.0/16
networking:
  machineNetwork:
    cidr:

networking.machineNetwork を使用する場合に必須です。IP アドレスブロック。libvirt と IBM Power® Virtual Server を除くすべてのプラットフォームのデフォルト値は 10.0.0.0/16 です。libvirt の場合、デフォルト値は 192.168.126.0/24 です。IBM Power® Virtual Server の場合、デフォルト値は 192.168.0.0/24 です。

CIDR 表記の IP ネットワークブロック。

例: 10.0.0.0/16 または fd00::/48

注記

優先される NIC が置かれている CIDR に一致する networking.machineNetwork を設定します。

6.1.3. オプションの設定パラメーター

オプションのインストール設定パラメーターは、以下の表で説明されています。

表6.3 オプションのパラメーター
パラメーター説明
additionalTrustBundle:

ノードの信頼済み証明書ストアに追加される PEM でエンコードされた X.509 証明書バンドル。この信頼バンドルは、プロキシーが設定される際にも使用できます。

文字列

capabilities:

オプションのコアクラスターコンポーネントのインストールを制御します。オプションのコンポーネントを無効にすることで、OpenShift Container Platform クラスターのフットプリントを削減できます。詳細は、インストール の「クラスター機能ページ」を参照してください。

文字列配列

capabilities:
  baselineCapabilitySet:

有効にするオプション機能の初期セットを選択します。有効な値は Nonev4.11v4.12vCurrent です。デフォルト値は vCurrent です。

文字列

capabilities:
  additionalEnabledCapabilities:

オプションの機能のセットを、baselineCapabilitySet で指定したものを超えて拡張します。このパラメーターで複数の機能を指定できます。

文字列配列

cpuPartitioningMode:

ワークロードパーティション設定を使用して、OpenShift Container Platform サービス、クラスター管理ワークロード、およびインフラストラクチャー Pod を分離し、予約された CPU セットで実行できます。ワークロードパーティショニングはインストール中にのみ有効にすることができ、インストール後に無効にすることはできません。このフィールドはワークロードのパーティショニングを有効にしますが、特定の CPU を使用するようにワークロードを設定するわけではありません。詳細は、スケーラビリティとパフォーマンス セクションの ワークロードパーティショニング ページを参照してください。

None または AllNodes。デフォルト値は None です。

compute:

コンピュートノードを構成するマシンの設定。

MachinePool オブジェクトの配列。

compute:
  architecture:

プール内のマシンの命令セットアーキテクチャーを決定します。現在、さまざまなアーキテクチャーのクラスターはサポートされていません。すべてのプールは同じアーキテクチャーを指定する必要があります。有効な値は、amd64arm64ppc64le、および s390x です。

文字列

compute:
  hyperthreading:

コンピュートマシンで同時マルチスレッドまたは hyperthreading を有効/無効にするかどうか。デフォルトでは、同時スレッドはマシンのコアのパフォーマンスを上げるために有効にされます。

重要

同時スレッドを無効にする場合は、容量計画においてマシンパフォーマンスの大幅な低下が考慮に入れられていることを確認します。

Enabled または Disabled

compute:
  name:

compute を使用する場合に必須です。マシンプールの名前。

worker

compute:
  platform:

compute を使用する場合に必須です。このパラメーターを使用して、ワーカーマシンをホストするクラウドプロバイダーを指定します。このパラメーターの値は controlPlane.platform パラメーターの値に一致する必要があります。

baremetalvsphere、または {}

compute:
  replicas:

プロビジョニングするコンピュートマシン (ワーカーマシンとしても知られる) の数。

2 以上の正の整数。デフォルト値は 3 です。

featureSet:

機能セットのクラスターを有効にします。機能セットは、デフォルトで有効にされない OpenShift Container Platform 機能のコレクションです。インストール中に機能セットを有効にする方法の詳細は、「機能ゲートの使用による各種機能の有効化」を参照してください。

文字列。TechPreviewNoUpgrade など、有効にする機能セットの名前。

controlPlane:

コントロールプレーンを構成するマシンの設定。

MachinePool オブジェクトの配列。

controlPlane:
  architecture:

プール内のマシンの命令セットアーキテクチャーを決定します。現在、さまざまなアーキテクチャーのクラスターはサポートされていません。すべてのプールは同じアーキテクチャーを指定する必要があります。有効な値は、amd64arm64ppc64le、および s390x です。

文字列

controlPlane:
  hyperthreading:

コントロールプレーンマシンで同時マルチスレッドまたは hyperthreading を有効/無効にするかどうか。デフォルトでは、同時スレッドはマシンのコアのパフォーマンスを上げるために有効にされます。

重要

同時スレッドを無効にする場合は、容量計画においてマシンパフォーマンスの大幅な低下が考慮に入れられていることを確認します。

Enabled または Disabled

controlPlane:
  name:

controlPlane を使用する場合に必須です。マシンプールの名前。

master

controlPlane:
  platform:

controlPlane を使用する場合に必須です。このパラメーターを使用して、コントロールプレーンマシンをホストするクラウドプロバイダーを指定します。このパラメーターの値は compute.platform パラメーターの値に一致する必要があります。

baremetalvsphere、または {}

controlPlane:
  replicas:

プロビジョニングするコントロールプレーンマシンの数。

サポートされる値は 3、シングルノード OpenShift をデプロイする場合は 1 です。

credentialsMode:

Cloud Credential Operator (CCO) モード。モードを指定しないと、CCO は指定された認証情報の機能を動的に判別しようとします。この場合、複数のモードがサポートされるプラットフォームで Mint モードが優先されます。

注記

すべてのクラウドプロバイダーですべての CCO モードがサポートされているわけではありません。CCO モードの詳細は、認証と認可 コンテンツの「クラウドプロバイダーの認証情報の管理」を参照してください。

MintPassthroughManual、または空の文字列 ("")。

fips:

FIPS モードを有効または無効にします。デフォルトは false (無効) です。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。

重要

クラスターで FIPS モードを有効にするには、FIPS モードで動作するように設定された Red Hat Enterprise Linux (RHEL) コンピューターからインストールプログラムを実行する必要があります。RHEL で FIPS モードを設定する方法の詳細は、RHEL から FIPS モードへの切り替え を参照してください。

FIPS モードでブートされた Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) を実行する場合、OpenShift Container Platform コアコンポーネントは、x86_64、ppc64le、および s390x アーキテクチャーのみで、FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。

注記

Azure File ストレージを使用している場合、FIPS モードを有効にすることはできません。

false または true

imageContentSources:

release-image コンテンツのソースおよびリポジトリー。

オブジェクトの配列。この表の以下の行で説明されているように、source およびオプションで mirrors が含まれます。

imageContentSources:
  source:

imageContentSources を使用する場合に必須です。ユーザーが参照するリポジトリーを指定します (例: イメージプル仕様)。

文字列

imageContentSources:
  mirrors:

同じイメージが含まれる可能性のあるリポジトリーを 1 つ以上指定します。

文字列の配列。

publish:

Kubernetes API、OpenShift ルートなどのクラスターのユーザーに表示されるエンドポイントをパブリッシュまたは公開する方法。

Internal または External。デフォルト値は External です。

このパラメーターを Internal に設定することは、クラウド以外のプラットフォームではサポートされません。

重要

フィールドの値が Internal に設定されている場合、クラスターは機能しなくなります。詳細は、BZ#1953035 を参照してください。

sshKey:

クラスターマシンへのアクセスを認証するための SSH キー。

注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

たとえば、sshKey: ssh-ed25519 AAAA.. です。

6.1.4. Agent-based Installer 用の追加のベアメタル設定パラメーター

Agent-based Installer 用の追加のベアメタルインストール設定パラメーターについて、次の表で説明します。

注記

以下のフィールドは、クラスターの初期プロビジョニング中には使用されませんが、クラスターのインストールが完了すると使用できるようになります。インストール時にこれらのフィールドを設定しておくと、Day 2 オペレーション中にフィールドを設定する必要がなくなります。

表6.4 追加のベアメタルパラメーター
パラメーター説明
platform:
  baremetal:
    clusterProvisioningIP:

プロビジョニングサービスが実行されるクラスター内の IP アドレス。デフォルトは、プロビジョニングサブネットの 3 番目の IP アドレスに設定されます。たとえば、172.22.0.3 または 2620:52:0:1307::3 です

IPV4 または IPV6 アドレス。

platform:
  baremetal:
    provisioningNetwork:

provisioningNetwork 設定は、クラスターがプロビジョニングネットワークを使用するかどうかを決定します。存在する場合、設定はクラスターがネットワークを管理するかどうかも決定します。

Managed: デフォルト。DHCP、TFTP などのプロビジョニングネットワークを完全に管理するには、このパラメーターを Managed に設定します。

Disabled: プロビジョニングネットワークの要件を無効にするには、このパラメーターを Disabled に設定します。Disabled に設定した場合、Day 2 に使用できるプロビジョニングが、仮想メディアベースのプロビジョニングだけになります。Disabledにして、電源管理を使用する場合、BMC はベアメタルネットワークからアクセスできる必要があります。Disabled の場合は、プロビジョニングサービスに使用するベアメタルネットワークに 2 つの IP アドレスを指定する必要があります。

Managed または Disabled

platform:
  baremetal:
    provisioningMACAddress:

プロビジョニングサービスを実行するクラスター内の MAC アドレス。

MAC アドレス

platform:
  baremetal:
    provisioningNetworkCIDR:

プロビジョニングに使用するネットワークの CIDR。このオプションは、プロビジョニングネットワークでデフォルトのアドレス範囲を使用しない場合に必要です。

有効な CIDR (例: 10.0.0.0/16)。

platform:
  baremetal:
    provisioningNetworkInterface:

ベアメタルネットワークに接続されたノード上のネットワークインターフェイス名。provisioningNetworkInterface 設定を使用して NIC の名前を識別する代わりに、bootMACAddress 設定を使用して、Ironic が NIC の IP アドレスを識別できるようにします。

文字列。

platform:
  baremetal:
    provisioningDHCPRange:

プロビジョニングネットワーク上のノードの IP 範囲を定義します (例: 172.22.0.10,172.22.0.254)。

IP アドレスの範囲。

platform:
  baremetal:
    hosts:

ベアメタルホストの設定。

ホスト設定オブジェクトの配列。

platform:
  baremetal:
    hosts:
      name:

ホストの名前。

文字列。

platform:
  baremetal:
    hosts:
      bootMACAddress:

ホストのプロビジョニングに使用する NIC の MAC アドレス。

MAC アドレス

platform:
  baremetal:
    hosts:
      bmc:

ホストがベースボード管理コントローラー (BMC) に接続するための設定。

BMC 設定オブジェクトのディクショナリー。

platform:
  baremetal:
    hosts:
      bmc:
        username:

BMC のユーザー名。

文字列。

platform:
  baremetal:
    hosts:
      bmc:
        password:

BMC のパスワード。

文字列。

platform:
  baremetal:
    hosts:
      bmc:
        address:

ホストの BMC コントローラーと通信するための URL。address 設定ではプロトコルを指定します。たとえば、redfish+http://10.10.10.1:8000/redfish/v1/Systems/1234 を指定すると、Redfish が有効になります。詳細は、「installer-provisioned クラスターのベアメタルへのデプロイ」セクションの「BMC アドレス指定」を参照してください。

URL。

platform:
  baremetal:
    hosts:
      bmc:
        disableCertificateVerification:

redfish および redfish-virtualmedia では、このパラメーターで BMC アドレスを管理する必要があります。BMC アドレスに自己署名証明書を使用する場合は、値が True である必要があります。

ブール値。

6.1.5. 追加の VMware vSphere 設定パラメーター

追加の VMware vSphere 設定パラメーターは以下の表で説明されています。

表6.5 追加の VMware vSphere クラスターパラメーター
パラメーター説明
platform:
  vsphere:

クラスターをホストするクラウドプラットフォーム上のアカウントを説明します。パラメーターを使用してプラットフォームをカスタマイズできます。マシンプール内のコンピュートマシンとコントロールプレーンマシンに追加の設定を指定する場合、このパラメーターは必要ありません。

vSphere 設定オブジェクトのディクショナリー

platform:
  vsphere:
    failureDomains:

リージョンとゾーン間の関係を確立します。障害ドメインは、datastore オブジェクトなどの vCenter オブジェクトを使用して定義します。障害ドメインは、OpenShift Container Platform クラスターノードの vCenter の場所を定義します。

障害ドメイン設定オブジェクトの配列。

platform:
  vsphere:
    failureDomains:
      name:

障害ドメインの名前。

文字列

platform:
  vsphere:
    failureDomains:
      region:

クラスターに複数の障害ドメインを定義する場合は、タグを各 vCenter データセンターにアタッチする必要があります。リージョンを定義するには、openshift-region タグカテゴリーのタグを使用します。単一の vSphere データセンター環境の場合、タグをアタッチする必要はありませんが、パラメーターに英数字の値 (例: datacenter) を入力する必要があります。

文字列

platform:
  vsphere:
    failureDomains:
      server:

クライアントが障害ドメインリソースにアクセスできるように、VMware vCenter Server の完全修飾ホスト名または IP アドレスを指定します。server ロールを vSphere vCenter サーバーの場所に適用する必要があります。

文字列

platform:
  vsphere:
    failureDomains:
      zone:

クラスターに複数の障害ドメインを定義する場合は、各 vCenter クラスターにタグをアタッチする必要があります。ゾーンを定義するには、openshift-zone タグカテゴリーのタグを使用します。単一の vSphere データセンター環境の場合、タグをアタッチする必要はありませんが、パラメーターに英数字の値 (例: cluster) を入力する必要があります。

文字列

platform:
  vsphere:
    failureDomains:
      topology:
        computeCluster:

vSphere コンピュートクラスターへのパス。

文字列

platform:
  vsphere:
    failureDomains:
      topology:
        datacenter:

OpenShift Container Platform 仮想マシン (VM) が動作するデータセンターをリストして定義します。データセンターのリストは、vcenters フィールドで指定したデータセンターのリストと一致する必要があります。

文字列

platform:
  vsphere:
    failureDomains:
      topology:
        datastore:

仮想マシンファイル、テンプレート、ISO イメージを保持する vSphere データストアへのパス。

重要

データストアクラスター内に存在する任意のデータストアのパスを指定できます。デフォルトでは、Storage vMotion はデータストアクラスターに対して自動的に有効になります。Red Hat は Storage vMotion をサポートしていないため、OpenShift Container Platform クラスターのデータ損失の問題を回避するには、Storage vMotion を無効にする必要があります。

複数のデータストアにわたって仮想マシンを指定する必要がある場合は、datastore オブジェクトを使用して、クラスターの install-config.yaml 設定ファイルで障害ドメインを指定します。詳細は、「VMware vSphere のリージョンとゾーンの有効化」を参照してください。

文字列

platform:
  vsphere:
    failureDomains:
      topology:
        folder:

オプション: ユーザーが仮想マシンを作成する既存のフォルダーの絶対パス (例: /<data_center_name>/vm/<folder_name>/<subfolder_name>)。

文字列

platform:
  vsphere:
    failureDomains:
      topology:
        networks:

設定した仮想 IP アドレスと DNS レコードを含む vCenter インスタンス内のネットワークをリスト表示します。

文字列

platform:
  vsphere:
    failureDomains:
      topology:
        resourcePool:

オプション: このパラメーターは、インストールプログラムが仮想マシンを作成する既存のリソースプールの絶対パスを設定します (例: /<data_center_name>/host/<cluster_name>/Resources/<resource_pool_name>/<optional_nested_resource_pool_name>)。

文字列

platform:
  vsphere:
    failureDomains:
      topology
        template:

既存の Red Hat Enterprise Linux CoreOS (RHCOS) イメージテンプレートまたは仮想マシンへの絶対パスを指定します。その後、インストールプログラムはイメージテンプレートまたは仮想マシンを使用して、vSphere ホストに RHCOS を迅速にインストールできます。RHCOS イメージを vSphere ホストにアップロードする代わりに、このパラメーターを使用することを検討してください。このパラメーターは、installer-provisioned infrastructure でのみ使用できます。

文字列

platform:
  vsphere:
    vcenters:

サービスが vCenter サーバーと通信できるように接続の詳細を設定します。

vCenter 設定オブジェクトの配列。

platform:
  vsphere:
    vcenters:
      datacenters:

OpenShift Container Platform 仮想マシン (VM) が動作するデータセンターをリストして定義します。データセンターのリストは、failureDomains フィールドで指定されたデータセンターのリストと一致する必要があります。

文字列

platform:
  vsphere:
    vcenters:
      password:

vSphere ユーザーに関連付けられたパスワード。

文字列

platform:
  vsphere:
    vcenters:
      port:

vCenter サーバーとの通信に使用するポート番号。

整数

platform:
  vsphere:
    vcenters:
      server:

vCenter サーバーの完全修飾ホスト名 (FQHN) または IP アドレス。

文字列

platform:
  vsphere:
    vcenters:
      user:

vSphere ユーザーに関連付けられたユーザー名。

文字列

6.1.6. 非推奨の VMware vSphere 設定パラメーター

OpenShift Container Platform 4.13 では、次の vSphere 設定パラメーターが非推奨になりました。これらのパラメーターは引き続き使用できますが、インストールプログラムはこれらのパラメーターを install-config.yaml ファイルに自動的に指定しません。

次の表に、非推奨になった各 vSphere 設定パラメーターを示します。

表6.6 非推奨の VMware vSphere クラスターパラメーター
パラメーター説明
platform:
  vsphere:
    cluster:

OpenShift Container Platform クラスターをインストールする vCenter クラスター。

文字列

platform:
  vsphere:
    datacenter:

OpenShift Container Platform 仮想マシン (VM) が動作するデータセンターを定義します。

文字列

platform:
  vsphere:
    defaultDatastore:

ボリュームのプロビジョニングに使用するデフォルトデータストアの名前。

文字列

platform:
  vsphere:
    folder:

オプション: インストールプログラムが仮想マシンを作成する既存のフォルダーの絶対パス。この値を指定しない場合、インストールプログラムは、データセンターの仮想マシンフォルダーにインフラストラクチャー ID を使用して名前が付けられたフォルダーを作成します。

文字列 (例: /<data_center_name>/vm/<folder_name>/<subfolder_name>)

platform:
  vsphere:
    password:

vCenter ユーザー名のパスワード。

文字列

platform:
  vsphere:
    resourcePool:

オプション: インストールプログラムが仮想マシンを作成する既存のリソースプールの絶対パス。値を指定しない場合、インストールプログラムは /<data_center_name>/host/<cluster_name>/Resources の下のクラスターのルートにリソースをインストールします。

文字列 (例: /<data_center_name>/host/<cluster_name>/Resources/<resource_pool_name>/<optional_nested_resource_pool_name>)

platform:
  vsphere:
    username:

vCenter インスタンスに接続するために使用するユーザー名。このユーザーには、少なくとも vSphere の 静的または動的な永続ボリュームのプロビジョニング に必要なロールおよび権限がなければなりません。

文字列

platform:
  vsphere:
    vCenter:

vCenter サーバーの完全修飾ホスト名または IP アドレス。

文字列

6.2. 使用可能なエージェント設定パラメーター

次の表に、エージェントベースのインストールプロセスの一部として設定できる必須およびオプションのエージェント設定パラメーターを示します。

これらの値は、agent-config.yaml ファイルに指定されています。

注記

これらの設定はインストールのみに使用され、インストール後は変更できません。

6.2.1. 必須設定パラメーター

次の表は、必須のエージェント設定パラメーターを説明しています。

表6.7 必須パラメーター
パラメーター説明
apiVersion:

agent-config.yaml コンテンツの API バージョン。現在のバージョンは v1beta1 です。インストールプログラムは、古い API バージョンもサポートしている場合があります。

文字列

metadata:

Kubernetes リソース ObjectMeta。ここからは name パラメーターのみが消費されます。

オブジェクト

metadata:
  name:

クラスターの名前。クラスターの DNS レコードはすべて {{.metadata.name}}.{{.baseDomain}} のサブドメインです。agent-config.yaml ファイルに入力された値は無視され、代わりに install-config.yaml ファイルに指定された値が使用されます。install-config.yaml ファイルまたは agent-config.yaml ファイルのいずれかを介して metadata.name を指定しない場合 (たとえば、ZTP マニフェストのみを使用する場合)、クラスター名は agent-cluster に設定されます。

小文字いちぶハイフン (-) の文字列 (dev など)。

6.2.2. オプションの設定パラメーター

次の表は、オプションのエージェント設定パラメーターを説明しています。

表6.8 オプションのパラメーター
パラメーター説明
rendezvousIP:

ブートストラッププロセスを実行し、assisted-service コンポーネントを実行するノードの IP アドレス。networkConfig パラメーターで少なくとも 1 つのホストの IP アドレスを指定しない場合は、ランデブー IP アドレスを指定する必要があります。このアドレスが指定されていない場合は、指定されたホストの networkConfig から 1 つの IP アドレスが選択されます。

IPV4 または IPV6 アドレス。

bootArtifactsBaseURL:

Agent-based Installer を使用して iPXE スクリプトを生成する際に、Preboot Execution Environment (PXE) アセットをアップロードするサーバーの URL。詳細は、「OpenShift Container Platform の PXE アセットの準備」を参照してください。

文字列。

additionalNTPSources:

すべてのクラスターホストに追加される Network Time Protocol (NTP) ソースのリスト。これらは、他の手段で設定された NTP ソースに追加されます。

ホスト名または IP アドレスのリスト。

hosts:

ホストの設定。オプションのホストリスト。定義されたホストの数は、install-config.yaml ファイルで定義されたホストの総数 (compute.replicas および controlPlane.replicas パラメーターの値の合計) を超えてはなりません。

ホスト設定オブジェクトの配列。

hosts:
  hostname:

ホスト名。動的ホスト設定プロトコル (DHCP) または逆引き DNS ルックアップから取得したホスト名をオーバーライドします。各ホストには、いずれかの手段で指定された一意のホスト名が必要ですが、このパラメーターを使用したホスト名の設定はオプションです。

文字列。

hosts:
  interfaces:

ホスト上のインターフェイスの名前と MAC アドレスのマッピングテーブルを提供します。agent-config.yaml ファイルに NetworkConfig セクションが指定されている場合は、このテーブルを含める必要があり、値は NetworkConfig セクションで指定されたマッピングと一致する必要があります。

ホスト設定オブジェクトの配列。

hosts:
  interfaces:
    name:

ホスト上のインターフェイスの名前。

文字列。

hosts:
  interfaces:
    macAddress:

ホスト上のインターフェイスの MAC アドレス。

たとえば 00-B0-D0-63-C2-26 などの MAC アドレス。

hosts:
  role:

ホストが master ノードと worker ノードのどちらであるかを定義します。agent-config.yaml ファイルにロールが定義されていない場合は、クラスターのインストール時にロールがランダムに割り当てられます。

master または worker

hosts:
  rootDeviceHints:

特定デバイスへの Red Hat Enterprise Linux CoreOS (RHCOS) イメージのプロビジョニングを有効にします。インストールプログラムは、検出順にデバイスを検査し、検出された値をヒントの値と比較します。ヒントの値と一致する最初に検出されたデバイスが使用されます。これは、インストール中にオペレーティングシステムが書き込まれるデバイスです。

キーと値のペアのディクショナリー。詳細は、「OpenShift インストール環境のセットアップ」ページの「ルートデバイスのヒント」を参照してください。

hosts:
  rootDeviceHints:
    deviceName:

RHCOS イメージがプロビジョニングされるデバイスの名前。

文字列。

hosts:
  networkConfig:

ホストネットワーク定義。この設定は、nmstate ドキュメント で定義されている Host Network Management API と一致する必要があります。

ホストネットワーク設定オブジェクトのディクショナリー。

Legal Notice

Copyright © 2024 Red Hat, Inc.

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.