Terraformを使用したエージェント・ベースのインストーラを使用したクラスタのインストール

エージェントベースのインストーラでTerraformスクリプトを使用して、Red Hat OpenShift Container PlatformのOCIインフラストラクチャをプロビジョニングする方法について学習します。

Red Hat OpenShiftプラグインを使用して、Terraformでインフラストラクチャを自動的にプロビジョニングします。Terraformスタックの最新バージョンは、Red Hat OpenShiftプラグインのスタック情報ページにあります。

Terraformの以前のバージョンは、GitHubのOCIリリース上のOpenShiftページからアクセスできます。「アセット」セクションから、必要なバージョンのcreate-cluster.zipファイルをダウンロードします。

重要

  • インストールの失敗を回避するために、create-clusterスタックを実行する前にcreate-resource-attribution-tagsスタックを実行します。詳細については、前提条件のトピックを参照してください。
  • create-resource-attribution-tagsスタックは1回のみ実行する必要があります。タグ・ネームスペースおよび定義済タグがすでに存在する場合は、今後のインストールでこのステップをスキップできます。
  • OpenShiftには、インスタンス、ボリュームおよびネットワーキング・リソースに対する操作を実行するための管理権限が必要です。OpenShiftを専用コンパートメントにデプロイして、同じコンパートメントで実行されている可能性のある他のアプリケーションとの競合を回避します。

スタックによって作成されたリソースのリストは、OpenShiftのTerraform定義済リソースを参照してください。

  1. ナビゲーション・メニューを開き、「開発者サービス」「Red Hat OpenShift」の順に選択します。
  2. 「スタック情報」ページで、オプションの「名前」および「説明」を入力します。
    • Terraformスタックの最新バージョンが自動的にアップロードされます。
    • 「コンパートメントに作成」および「Terraformバージョン」フィールドに事前移入されます。
  3. 「変数の構成」ページで、「適用」ジョブを初めて実行したときにスタックが作成するインフラストラクチャ・リソースに必要な変数を確認および構成します。
  4. OpenShiftクラスタ構成セクションで:
    • 「インストール方法」「エージェントベース」に変更します。
    • コンピュートおよびコントロールプレーンのカウントを構成します。これらの値は、エージェント・ベース・インストーラのinstall-config.yamlファイルを生成するときに使用されます。
    • 「OpenShiftイメージおよびインスタンスの作成」チェック・ボックスの選択を解除します。

    OpenShiftクラスタ構成

    フィールド 摘要
    テナンシOCID

    現在のテナンシのOCID。

    デフォルト値: 現在のテナンシ

    コンパートメント

    OpenShiftクラスタを作成するコンパートメントのOCID。

    デフォルト値: 現在のコンパートメント

    クラスタ名

    OpenShiftクラスタ名。

    ノート: agent-config.yamlおよびinstall-config.yamlファイルで指定したクラスタ名と同じ値を使用し、DNS互換であることを確認します。

    インストール方法

    クラスタのインストールに使用するインストール方法。

    ノート: エージェントベースのインストールの場合は、「エージェントベース」を選択します。

    デフォルト値: Assisted Installer

    OpenShiftイメージおよびインスタンスの作成

    OpenShiftイメージおよびインスタンスの作成を有効にします。

    デフォルト値: True

    OpenShiftイメージ・ソースURI

    前のタスクオブジェクト・ストレージへのRed Hat ISOイメージのアップロードで作成した事前認証済リクエストURL。

    ノート: このフィールドは、後で「OpenShiftイメージおよびインスタンスの作成」チェック・ボックスが選択されている場合にのみ表示されます。

  5. OpenShift「リソース属性タグ」セクションで、次のフィールドを確認および構成します。

    OpenShiftリソース属性タグ
    フィールド 摘要
    OpenShiftリソース属性タグのタグ・ネームスペース・コンパートメント

    OpenShiftリソース属性タグのタグ・ネームスペース・コンパートメント。

    ノート: Terraformスタックを適用する前に、指定したタグが存在することを確認してください。リソース・タグ付けのタグ・ネームスペースが作成されるコンパートメントは、デフォルトで現在のコンパートメントに設定されます。OCIリソースに対するOpenShift属性の場合、タグ・ネームスペースおよび定義済タグはopenshift-tagsおよびopenshift-resourceに設定されます。openshift-tagsネームスペースがすでに存在する場合は、正しく定義され、適用されていることを確認します。たとえば: defined-tags" - {"openshift-tags"- {"openshift-resource" - "openshift-resource-infra"} }

  6. 「エージェントベースのインストール拡張構成」セクションで、次のフィールドを確認および構成します。
    ノート

    このセクションは、「インストール方法」「エージェント・ベース・インストーラ」に設定されている場合にのみ表示されます。

    エージェントベースのインストールの詳細構成
    フィールド 摘要
    レンデバスIP

    エージェントベースのインストーラを使用してクラスタをブートストラップするために使用されるIP。private_ocpサブネットに存在する必要があります。

    切断されたエージェントベースのインストール

    クラスタが切断された(エアギャップされた)環境にインストールされているかどうかを示します。このボックスにチェックマークを入れると、agent.x86_64-rootfs.imgファイルをホストし、エージェントベースのインストールを容易にするために使用できるWebサーバーを作成することもできます。

    デフォルト値: False

    OpenShiftインストーラ・バージョンの設定

    使用するOpenShiftインストーラ・バージョン。最新バージョンを使用しない場合は、サポートされている特定のバージョンを指定します。たとえば、4.19.1。

    デフォルト値: False

    OpenShiftインストーラのバージョン

    OpenShiftインストーラのバージョン。公開済バージョンのリストは、OpenShiftクライアント・ダウンロード・ページで確認できます。

    デフォルト値: 最新

    パブリックSSH

    Webサーバーが使用する公開SSHキー。

    ノート: このキーはinstall-config.yamlファイルにも追加され、Openshiftインスタンスへのアクセスを提供する必要があります。

    Red Hatプルシークレット

    OpenShiftコンテナ・プラットフォーム・コンポーネントおよびサービスのコンテナ・イメージをQuay.ioなどのソースからダウンロードする際の認証用のプル・シークレット。詳細は、OpenShift Container Platform 4のインストールを参照してください。

    オブジェクト・ストレージ・ネームスペース テナンシのOCIストレージ・ネームスペース。

    この値は、Bukcetの「バケット詳細」ページで確認できます。詳細は、オブジェクト・ストレージ・ネームスペースに関する項を参照してください。

    オブジェクト・ストレージ・バケット OpenShiftインストール・ファイルが格納されるOCIオブジェクト・ストレージ・バケット。
    WebサーバーのプライベートIP rootfsイメージをアップロードするサーバーのプライベートIP。このパラメータは、切断された環境でのみ必要です。このIPは、agent-config.yamlファイルのbootArtifactsBaseURL値に含まれている必要があります。
    Webサーバーのシェイプ Webサーバー・インスタンスのコンピュート・インスタンス・シェイプ。詳細は、サポートされるシェイプを参照してください。
    Webサーバー・イメージ

    Webサーバー・インスタンスに使用するイメージのsource_id。イメージが事前選択されていない場合は、使用可能なOracle Linuxイメージのリストから選択します。

    WebサーバーOCPU

    Webサーバー・シェイプ・インスタンスで使用可能なOCPUの数。

    デフォルト値: 2

    Webサーバー・メモリー

    Webサーバー・シェイプ・インスタンスで使用可能なメモリーの量(ギガバイト)。

    デフォルト値: 8

    プロキシ設定の構成 ホストがプロキシの使用を必要とするファイアウォールの背後にある場合は、プロキシに関する追加情報を指定します。
    HTTPプロキシURL HTTPプロキシURLを指定します。たとえば、http://my.proxy.server.です
    HTPPSプロキシURL HTTPsプロキシURLを指定します。たとえば、https://my.proxy.server.です
    プロキシなしドメイン プロキシなしドメインを指定します。たとえば、localhost,127.0.0.1,{basedomain}です。
  7. 「ネットワーク構成」セクションで、次のフィールドを確認および構成します:

    ネットワーク構成
    フィールド 摘要
    パブリックDNSの作成

    「ゾーンDNS」フィールドに指定されたベース・ドメインに基づいて、パブリックDNSゾーンを作成します。

    ノート: パブリックDNSを作成しない場合は、独自のDNSソリューションを使用しないかぎり、プライベートDNSゾーンを作成します。DNSを使用しないクラスタ・ホスト名を解決するには、etc_hosts_entry 出力を使用して、クラスタ・ホスト名をapi_appsロード・バランサのIPアドレスにマップするエントリを/etc/hostsに追加します。

    デフォルト値: True

    プライベートDNSの作成

    VCN内のホスト名解決をサポートするために、「ゾーンDNS」フィールドに指定されたベース・ドメインに基づいてプライベートDNSゾーンを作成します。

    ノート: プライベートDNSゾーンには、パブリックDNSゾーンと同じレコードが含まれます。未登録のベースドメインを使用する場合は、プライベート DNSゾーンを作成することをお勧めします。そうしないと、クラスタホスト名を解決するための代替方法が必要になる場合があります。詳細は、プライベートDNSを参照してください

    デフォルト値: False

    パブリックAPIロード・バランサの有効化

    外部アクセス用のパブリックIPアドレスを使用して、パブリック・サブネット内のOpenShift APIエンドポイントのロード・バランサを作成します。

    ノート: 選択を解除すると、ロード・バランサは、VCN内または接続されたプライベート・ネットワーク内のアクセスが制限されたプライベート・サブネットに作成されます。オンプレミス環境(C3/PCAなど)では、パブリックIPは内部(RFC 1918)である場合があります。パブリック・アクセスは、リモート管理、自動化およびCI/CDに役立ちます。必要に応じて、ネットワーク管理者に連絡してください。

    デフォルト値: False

    パブリック・アプリケーション・ロード・バランサの有効化

    ワークロードへの外部アクセス用のパブリックIPアドレスを使用して、パブリック・サブネット内のOpenShiftアプリケーションのロード・バランサを作成します。たとえば、console-openshift-console.apps.mycluster.mydomain.comまたはconsole-openshift-console.apps.devcluster.openshift.comです。

    ノート: 選択を解除すると、ロード・バランサはプライベート・サブネットに作成され、VCN内またはVPN/プライベート・ネットワークを介したアクセスが制限されます。パブリック・アクセスは、インターネットに直接接続されているアプリケーション、カスタマ・サービスまたはマルチテナント・ワークロードに役立ちます。オンプレミス設定(C3/PCAなど)では、パブリックIPは内部(RFC 1918)である場合があります。ネットワーク・チームに連絡して、適切なエクスポージャを確保してください。

    デフォルト値: True

    ゾーンDNS クラスタのDNSレコードのベース・ドメイン(たとえば、devcluster.openshift.com)。パブリックまたはプライベート(あるいはその両方)のDNSゾーンの作成に使用されます。この値は、install-config.yaml ファイルのbaseDomainに指定された値と一致する必要があります。
    VCN DNSラベル

    VCN用のDNSラベル。VNICのホスト名およびサブネットのDNSラベルとともに使用されるもので、このサブネット内の各VNICの完全修飾ホスト名(FQDN)を形成します(たとえば、bminstance1.subnet123.vcn1.oraclevcn.com)。

    デフォルト値: openshiftvcn

    既存のネットワーキング・インフラストラクチャの使用 既存のインフラストラクチャを使用するかどうかを指定します。

    デフォルト値: False

    ネットワーキング・コンパートメント 既存のネットワーキング・リソースがあるコンパートメントを選択します。これは、OpenShiftリソースが作成されるメイン・コンパートメントとは異なるか、同じである可能性があります。

    デフォルト値:現在のコンパートメント

    既存のVCN use_existing_networkがtrueの場合に使用する既存のVCNのOCID。
    OCPの既存のプライベート・サブネット use_existing_networkがtrueの場合に使用するOCPの既存のプライベート・サブネットのOCID。
    ベア・メタル用の既存のプライベート・サブネット use_existing_networkがtrueの場合に使用するベア・メタル用の既存のプライベート・サブネットのOCID。これは、private_ocpサブネットとは異なる必要があります。そうしないと、問題が発生する可能性があります。
    VCN CIDR

    OpenShiftクラスタのVCNのIPv4 CIDRブロック。

    デフォルト値: 10.0.0.0/16

    パブリック・サブネットCIDR

    OpenShiftクラスタのパブリック・サブネットのIPv4 CIDRブロック。

    デフォルト値: 10.0.0.0/20

    OCPのプライベート・サブネットCIDR

    OpenShiftクラスタのプライベート・サブネットのIPv4 CIDRブロック。

    デフォルト値: 10.0.16.0/20

    ベア・メタル用の予約済プライベート・サブネットCIDR

    OpenShiftベア・メタル・クラスタのプライベート・サブネットのIPv4 CIDRブロック。

    デフォルト値: 10.0.32.0/20

    ロード・バランサの最大帯域幅

    ロード・バランサが達成できる最大帯域幅(イングレスとエグレス)を決定する帯域幅(Mbps)。値は、minimumBandwidthInMbpsから8000の間である必要があります。

    デフォルト値: 500

    ロード・バランサ最小帯域幅

    帯域幅(事前プロビジョニングされた帯域幅の合計(イングレスとエグレス)を決定するMbps)。値は10からmaximumBandwidthInMbpsの間である必要があります。

    デフォルト値: 10

  8. (オプション)「拡張構成」セクションで、次のフィールドを確認および構成します。

    詳細設定
    フィールド 摘要
    OCI CCMおよびCSIドライバのバージョン

    デプロイするOCI CCMおよびCSIドライバのバージョン。詳細は、ドライババージョンのリストを参照してください。

    デフォルト値: v1.32.0

    既存のインスタンス・ロール・タグの使用

    OCIリソースをタグ付けするときに、既存のインスタンス・ロール・タグ・ネームスペースおよび定義済タグを再利用するかどうかを示します。デフォルトでは、インスタンス・ロール・タグ付けリソースの新しいセットが作成され、残りのクラスタ・リソースとともに破棄されます。

    必要に応じて、oci-openshift GitHubリポジトリのcreate-instance-role-tagsページから、Terraformスタックで再利用できるインスタンス・ロール・タグ・リソースを個別に作成します。クラスタが削除されても、既存のインスタンス・ロール・タグ付けリソースは破棄されません。

    デフォルト値: False

    (オプション)インスタンス・ロール・タグ・ネームスペース名

    再使用するインスタンス・ロール・タグ・ネームスペースの名前。

    ノート: このフィールドは、「既存のインスタンス・ロール・タグの使用」チェック・ボックスが選択されている場合にのみ表示されます。

    デフォルト値: openshift-{cluster_name}

    インスタンス・ロール・タグ・ネームスペース・コンパートメントOCID

    既存のインスタンス・ロール・タグ・ネームスペースを含むコンパートメント。

    ノート: このフィールドは、「既存のインスタンス・ロール・タグの使用」チェック・ボックスが選択されている場合にのみ表示されます。

    デフォルト値: 現在のコンパートメント

  9. 「次へ」を選択します。
  10. 「確認」ページで、スタック情報および変数を確認します。
  11. 「作成」を選択してスタックを作成します。コンソールは、新しいスタックのリソース・マネージャ・スタックの詳細ページにリダイレクトされます。
  12. スタックの詳細ページで、「適用」を選択して適用ジョブを作成し、クラスタのインフラストラクチャをプロビジョニングします。適用ジョブの実行後、ジョブの詳細を取得してそのステータスを確認します。「成功」(SUCCEEDED)は、ジョブが完了したことを示します。完了すると、ISOイメージおよびコンピュート・インスタンスを除くすべてのOpenShiftリソースが作成されます。
  13. リソース・マネージャの「スタック」ページで、スタックの名前を選択して詳細を表示します。ジョブのリスト・ビューが表示されない場合は、「リソース」セクションの下の「ジョブ」を選択してジョブのリストを表示します。
  14. スタック作成のジョブを選択します。「ジョブ詳細」ページがコンソールに表示されます。
  15. 「リソース」セクションで「出力」を選択して、ジョブの出力のリストを表示します。
  16. (オプション)「表示」を選択して、関連するエージェント・ベースの出力の内容(agent_configinstall_configdynamic_custom_manifest)を表示および確認します。
  17. 「コピー」を選択して、エージェントベースの出力の内容をコピーします。
    ノート

    • この出力を次の手順で貼り付けるとインデントの問題が発生する可能性があるため、テキストを手動で選択してコピーしないことをお薦めします。
    • Webサーバーを使用した切断されたインストールの場合、出力ファイルは、すぐに使用できるWebサーバーですでに使用可能です。オブジェクト・ストレージ・バケットでも使用できます。
  18. テキスト・エディタまたはコード・エディタを使用して、コピーした出力をagent-config.yamlinstall-config.yamldynamic-custom-manifest.yamlファイルに保存します。または、Object Storageバケットからダウンロードできます。
  19. クラスタをインストールするための構成ファイルおよびブート可能なISOイメージを作成します。次の手順は、OCIにクラスタをインストールするための構成ファイルの作成(Red Hatのドキュメント)を参照してください。
    • インストール・ファイルの準備とカスタマイズ
    • エージェントベースのインストーラのダウンロード。
    • ISOイメージの生成
    • (切断された環境の場合) rootfsイメージをWebサーバーの/var/www/htmlに移動します。
    • authフォルダからkubeconfigおよびkubeadmin-passwordを保存します。
    構成ファイルおよびISOイメージを作成したあとにこのドキュメントに戻り、インストールを続行します。
  20. 検出ISOイメージ・ファイルをOCIオブジェクト・ストレージのバケットにアップロードします。手順が必要な場合は、オブジェクト・ストレージへのデータの格納を参照してください。
  21. リソース・マネージャ・サービスに移動し、OpenShiftをインストールするために作成したスタックのスタック詳細ページにアクセスします。
  22. 「リソース」で、「変数」を選択します。
  23. 「変数の編集」を選択します。
  24. OpenShiftクラスタ構成セクションで:
    • Select the Create OpenShift Image and Instances checkbox.
    • 事前認証済リクエスト文字列をOpenShift「イメージ・ソースURI」フィールドに貼り付けます。
  25. 「コントロール・プレーン・ノード構成」および「コンピュート・ノード構成」の項の値を確認します。
    ノート

    「コントロール・プレーン・ノード数」および「コンピュート・ノード数」の値が、イメージの作成時にinstall-config.yamlファイルの値と一致していることを確認します。

    コントロール・プレーン・ノード構成

    ノート: このセクションは、「OpenShiftイメージおよびインスタンスの作成」チェック・ボックスが選択されている場合にのみ表示されます。

    フィールド 摘要
    コントロールプレーンシェイプ

    コントロール・プレーン・ノードのコンピュート・インスタンス・シェイプ。詳細は、コンピュート・シェイプを参照してください。

    デフォルト値: VM.Standard.E5。フレックス

    コントロール・プレーン・ノード数

    クラスタ内のコントロール・プレーン・ノードの数。

    デフォルト値: 3

    コントロール・プレーン・ノードOCPU

    各コントロール・プレーン・ノード・シェイプで使用可能なOCPUの数。

    デフォルト値: 4

    コントロール・プレーン・ノード・メモリー

    各コントロール・プレーン・ノード・シェイプで使用可能なメモリーの量(ギガバイト(GB)。

    デフォルト値: 24

    コントロール・プレーン・ノードのブート・ボリューム

    各コントロール・プレーン・ノードのブート・ボリューム・サイズ(GB)。

    デフォルト値: 1024

    コントロール・プレーン・ノードVPU

    各コントロール・プレーン・ノードのボリュームに適用されるボリューム・パフォーマンス・ユニット(VPU)の数(1 GB当たり)。

    デフォルト値: 100

    AD間でのコントロール・プレーン・インスタンスの分散

    選択したADから開始して、ラウンドロビン・シーケンスでアベイラビリティ・ドメイン(AD)間のコントロール・プレーン・インスタンスの自動分散を有効にします。選択を解除すると、選択した開始ADにすべてのノードが作成されます。

    デフォルト値: True

    (オプション)ADの起動

    初期ノード配置に使用される可用性ドメイン(AD)。追加のノードは、選択したADから開始して、ラウンドロビン・シーケンスでAD間で自動的に分散されます。

    FD間でのコントロール・プレーン・インスタンスの配分

    コントロール・プレーン・インスタンスを複数のフォルト・ドメインにラウンドロビン順序で分散します。選択しない場合、OCI Computeサービスは、シェイプの可用性およびその他の基準に基づいてそれらを分散します。

    デフォルト値: True

    計算ノード構成

    ノート: このセクションは、「OpenShiftイメージおよびインスタンスの作成」チェック・ボックスが選択されている場合にのみ表示されます。

    フィールド 摘要
    コンピュート・シェイプ

    コンピュート・ノードのインスタンス・シェイプ。詳細は、コンピュート・シェイプを参照してください。

    デフォルト値: VM.Standard.E5。フレックス

    コンピュート・ノードの数

    クラスタ内のコンピュートノードの数。

    デフォルト値: 3

    コンピュート・ノードOCPU

    各コンピュート・ノード・シェイプで使用可能なOCPUの数。

    デフォルト値: 6

    計算ノード・メモリー

    各コントロール・プレーン・ノード・シェイプで使用可能なメモリーの量(ギガバイト(GB)。

    デフォルト値: 16

    コンピュート・ノード・ブート・ボリューム

    各コントロール・プレーン・ノードのブート・ボリューム・サイズ(GB)。

    デフォルト値: 100

    計算ノードVPU

    各コンピュート・ノードのボリュームに適用されるボリューム・パフォーマンス・ユニット(VPU)の数(1 GB当たり)。

    デフォルト値: 30

    AD間でのコンピュート・インスタンスの分散

    選択したADから開始して、ラウンドロビン・シーケンスで可用性ドメイン(AD)間のコンピュート・インスタンスの自動分散を有効にします。選択を解除すると、選択した開始ADにすべてのノードが作成されます。

    デフォルト値: True

    (オプション)ADの起動

    初期ノード配置に使用される可用性ドメイン(AD)。追加のノードは、選択したADから開始して、ラウンドロビン・シーケンスでAD間で自動的に分散されます。

    FD間でのコンピュート・インスタンスの分散

    コンピュート・インスタンスをフォルト・ドメイン全体にラウンドロビン順序で分散します。選択しない場合、OCI Computeサービスは、シェイプの可用性およびその他の基準に基づいてそれらを分散します。

    デフォルト値: True

  26. 「エージェントベースのインストール拡張構成」セクションで、「Rendezvous IP」フィールドの値を書き留めます。このIPアドレスは、コントロール・プレーン・インスタンスの1つに割り当てられ、その後、クラスタのブートストラップ・ノードとして機能します。Webサーバーからブートストラップ・クラスタ・ノードにアクセスして、インストール・プロセスを監視できます。
    ssh -i id_rsa core@<rendezvous_ip>
    接続したら、次のコマンドを実行して、ブートストラップ・ノードのログを監視します。
    journalctl -f

    SSHコマンドを実行する前に、SSH秘密鍵id_rsaをWebサーバーにアップロードします。

    scp ~/.ssh/id_rsa opc@<webserver_public_ip>:/home/opc
    ノート

    • 「Rendezvous IP」フィールドの値は、agent-config.yamlrendezvousIPと一致する必要があります。
    • このステップ中に、「エージェントベースのインストール拡張構成」セクションの構成を変更しないでください。
  27. 「次へ」を選択して、変更内容を確認して保存します。
  28. スタックの詳細ページで、「適用」を選択して、スタックの別の適用ジョブを実行します。このジョブは、クラスタ内のコンピュート・インスタンスによって使用されるカスタム・ソフトウェア・イメージを作成し、コンピュート・インスタンスをプロビジョニングします。コンピュート・インスタンスがスタックによってプロビジョニングされると、クラスタのインストールが自動的に開始されます。

    次の手順エージェントベースのクラスタ・インストールがOCIで実行されていることの確認(Red Hatのドキュメント)の手順に従って、クラスタが実行されていることを確認します。このステップは、OpenShift Container Platform CLIで実行されます。