切断環境でのエージェントベースのインストーラのOCIリソースのプロビジョニング

エージェントベースのインストーラを使用してOpenShiftコンテナ・プラットフォーム・クラスタをインストールするために、OCIテナンシで作成する必要があるリソースについて学習します。

ヒント

TerraformでOCIリソースをプロビジョニングする場合は、Terraformを使用したクラスタ・インフラストラクチャのプロビジョニングの説明に従って、このトピックの手順を使用する必要はありません。

エージェントベースのインストーラのワークフローは、Red Hat Hybrid Cloudコンソールで開始されます。このコンソールでは、OCIでコンピュート・インスタンスをプロビジョニングするために必要な検出ISOイメージを作成するためのopenshift-installバイナリをダウンロードします。検出イメージを作成すると、リソース・プロビジョニングのためにワークフローがOCIコンソールに移動します。

エージェントベースのインストーラを使用する場合は、このドキュメントの前提条件で説明されているリソースと、このトピックで説明するOCIインフラストラクチャ・リソースが必要です。

オプションで、検出ISOイメージに依存するコンピュート・サービス・カスタム・イメージを除き、開始前にこれらのリソースのほとんどを作成できます。次のリソースが必要です:

  • コンパートメント
  • VCN
  • ロード・バランサ
  • ロード・バランサのDNSレコード
  • クラスタのコンピュート・ノードのタグ・ネームスペースおよび定義済タグ
  • クラスタの計算ノードのIAMダイアナミック・グループ
  • 動的グループのIAMポリシー
  • OpenShift iso検出イメージから作成されたコンピュート・インスタンス・プロビジョニングのカスタム・イメージ

コンパートメント

コンパートメントによって、クラウド・リソースを編成および分離できます。OpenShiftクラスタの新しいコンパートメントを作成することをお薦めします。詳細は、「コンパートメントの作成」を参照してください。

VCNおよびネットワーキング・リソース

OpenShiftコンピュート・ノード、ロード・バランサおよびその他のリソースは、OCI Virtual Cloud Network (VCN)を使用して接続します。VCNの作成手順は、VCNの作成を参照してください。

VCNおよび関連するネットワーキング・リソースをvirtual-network-family集計リソース・タイプで管理するには、IAM権限が必要です。詳細は、リソースへのアクセスの管理を参照してください。ネットワーキングの権限については、「コア・サービス」の項で説明します。

オプションで、VCN内のネットワーク・セキュリティ・グループ(NSG)を使用してアクセスを制御できます。NSGを使用したネットワーク・トラフィックおよびアクセスの制御の詳細は、ネットワーク・セキュリティ・グループを参照してください。NSGは、他のOpenShfitインフラストラクチャ・リソースと同じコンパートメントにある必要があることに注意してください。

VCNおよびサブネットの構成の詳細は、GitHubのOCIのOpenShiftのTerraform定義済リソースのページを参照してください。特定のリソース定義については、shared_modulesディレクトリ内の関連フォルダにアクセスし、oci_core_vcn, oci_core_internet_gatewayoci_core_nat_gateway oci_core_route_table oci_core_subnetおよびoci_core_network_security_groupリソースを検索します。

ロード・バランサ

Red Hat OpenShiftクラスタには、2つのロード・バランサ(内部ネットワーク・トラフィック用と外部トラフィック用)が必要です。手順については、ロード・バランサの作成を参照してください。ロード・バランサ構成の概要は、GitHubのOCIのOpenShiftのTerraform定義済リソースのページを参照してください。特定のリソース定義については、shared_modulesディレクトリ内の関連フォルダにアクセスし、oci_load_balancer_load_balanceroci_load_balancer_backend_setおよびoci_load_balancer_listenerリソースを検索します。

内部Load Balancer

次の情報を使用して、内部トラフィックに使用されるロード・バランサを構成します:
ポート バックエンド・マシン(プール・メンバー) Description
6443 ブートストラップおよびコントロール・プレーン Kubernetes APIサーバー
22623 ブートストラップおよびコントロール・プレーン マシン構成サーバー
22624 ブートストラップおよびコントロール・プレーン マシン構成サーバー

外部Load Balancer

次の情報を使用して、外部トラフィックに使用されるロード・バランサを構成します:

ポート バックエンド・マシン(プール・メンバー) 説明
80

イングレス・コントローラ・ポッド、コンピュートまたはワーカーをデフォルトで実行するマシン

HTTPSトラフィック
443

イングレス・コントローラ・ポッド、コンピュートまたはワーカーをデフォルトで実行するマシン

HTTPSトラフィック
6443 ブートストラップおよびコントロール・プレーン HTTPSトラフィック

DNSレコード

内部および外部のOpenShiftネットワーク・トラフィックをルーティングするためのDNSレコードを作成します。DNSゾーンを作成および管理する手順については、Zonesを参照してください。各DNSレコードは、ロード・バランサの同じパブリックIDとプライベートIDを共有する必要があります。

高レベルのDNS構成の詳細は、GitHubのOCIのOpenShiftのTerraform定義済リソースのページを参照してください。特定のリソース定義については、shared_modulesディレクトリ内の関連フォルダにアクセスし、oci_dns_zoneおよびoci_dns_rrsetリソースを検索します。

コンポーネント 記録 ロード・バランサ・タイプ 説明
Kubernetes API api.<cluster_name>.<base_domain>. 外部ロード・バランサIPの使用

APIロード・バランサを識別するDNS A/AAAAまたはCNAMEレコードおよびDNS PTRレコード。

これらのレコードは、クラスタ外部のクライアント、およびクラスタ内のすべてのノードから解決できる必要があります。

Kubernetes API api-int.<cluster_name>.<base_domain>. 内部ロード・バランサIPの使用

APIロード・バランサを内部的に識別するためのDNS A/AAAAまたはCNAMEレコードおよびDNS PTRレコード。

これらのレコードは、クラスタ内のすべてのノードから解決できる必要があります。

ルート *.apps.<cluster_name>.<base_domain>. 外部ロード・バランサIPの使用

アプリケーション・イングレス・ロード・バランサを参照するワイルドカードDNS A/AAAAまたはCNAMEレコード。

アプリケーション・イングレス・ロード・バランサは、イングレス・コントローラ・ポッドを実行するマシンをターゲットとします。イングレス・コントローラ・ポッドは、デフォルトでコンピュート・マシンで実行されます。

これらのレコードは、クラスタ外部のクライアント、およびクラスタ内のすべてのノードから解決できる必要があります。

たとえば、console-openshift-console.apps.<cluster_name>.<base_domain>は、OpenShiftコンテナ・プラットフォーム・コンソールへのワイルドカード・ルートとして使用されます。

定義されたタグ

すべてのコントロール・プレーン・ノード(masterインスタンス・ロールを取得)およびコンピュート・ノード(workerインスタンス・ロールを取得)をグループ化するには、定義済タグが必要です。

タグ付けサービスを使用して、OpenShiftクラスタの作成に使用しているコンパートメントに次のタグ付けリソースを作成します:

  • タグ・ネームスペース: openshift_tags
  • 定義済タグ名: instance_role
  • instance_roleの定義済タグ値:
    • master
    • worker

手順については、Tags and Tag Namespace Conceptsを参照してください。高レベルのタグ付けの詳細は、GitHubのOCIのOpenShiftのTerraform定義済リソース・ページを参照してください。特定のリソース定義については、shared_modulesディレクトリ内の関連フォルダにアクセスし、oci_identity_tag_namespaceおよびoci_identity_tagリソースを検索します。

動的グループ

動的グループを使用すると、(ユーザー・グループと同様に) Oracle Cloud Infrastructureコンピュート・インスタンスを「プリンシパル」の俳優としてグループ化できます。IAMポリシー(次の項を参照)を作成して、動的グループのルールを定義します。手順については、動的グループの管理を参照してください。動的グループ構成の詳細は、GitHubの「OCIのOpenShiftのTerraform定義済リソース」ページを参照してください。特定のリソース定義については、shared_modulesディレクトリの関連フォルダにアクセスし、次のリソースを検索します: oci_identity_dynamic_group

動的グループ・ポリシー

master動的グループにはIAMポリシーが必要です。手順については、動的グループの管理およびポリシーの仕組みを参照してください。動的グループ・ポリシー構成の概要は、GitHubの「OCI上のOpenShiftのTerraform定義済リソース」ページを参照してください。特定のリソース定義については、shared_modulesディレクトリの関連フォルダにアクセスし、次のリソースを検索します: oci_identity_policy

ポリシー・ステートメントは次のようにフォーマットされます。


      Allow dynamic-group master to manage volume-family in compartment id <compartment_ocid>
      Allow dynamic-group master to manage instance-family in compartment id <compartment_ocid>
      Allow dynamic-group master to manage security-lists in compartment id <compartment_ocid>
      Allow dynamic-group master to use virtual-network-family in compartment id <compartment_ocid>
      Allow dynamic-group master to manage load-balancers in compartment id <compartment_ocid>
      
      
    

OpenShiftコンテナ・プラットフォーム・インスタンスのカスタム・イメージ

エージェントベースのインストーラを使用してOpenShiftコンテナ・プラットフォームのクラスタ・ノードを作成するには、クラスタ・ノードの実行に必要なRed Hatソフトウェアを含むコンピュート・サービス・カスタム・イメージが必要です。このイメージを作成するには、次の手順を実行する必要があります:

  1. Red Hat Hybrid Cloud Consoleから入手可能なopenshift-installバイナリを使用して、検出ISOイメージをローカルに作成します。手順については、OCIにクラスタをインストールするための構成ファイルの作成を参照してください。
  2. 検出ISOイメージをOCIオブジェクト・ストレージにアップロードします。手順については、オブジェクト・ストレージ・バケットの作成およびバケットへのオブジェクト・ストレージ・オブジェクトのアップロードを参照してください。
  3. 検出ISOに基づいてコンピュート・サービスにカスタム・イメージを作成します。手順については、カスタム・イメージの管理を参照してください。
重要

カスタム・イメージを作成する場合は、イメージに対してこのオプションが有効になっていないようにBIOS機能をクリアする必要があります。詳細は、「カスタム・イメージの管理」ドキュメントの「カスタム・イメージのイメージ機能の構成」を参照してください。

エージェント構成ファイル

エージェントベースのインストーラでは、エージェントベースのインストーラを使用して検出ISOイメージを生成できるように、編集が必要な2つの構成ファイルが必要です。これらは、agent-config.yamlおよびinstall-config.yamlファイルです。これらのファイルの作成および構成の詳細は、Red HatドキュメントのOCIにクラスタをインストールするための構成ファイルの作成を参照してください。

agent-config.yamlおよびinstall-config.yamlファイルを作成した後、ローカルに保存します。ローカル・ディレクトリ構造は次のとおりです。

.
└── local_machine_work_directory/
    ├── agent-config.yaml
    ├── install-config.yaml
    └── openshift /
        ├── oci-csi.yml
        └── oci-ccm.yml

ファイアウォール構成

OpenShiftコンテナ・プラットフォームに必要なサイトへのアクセス権を付与するようにファイアウォールが構成されていることを確認します。OpenShiftコンテナ・プラットフォームに対するファイアウォールの許可リストの設定の詳細は、Red HatドキュメントのOpenShiftコンテナ・プラットフォーム用のファイアウォールの構成を参照してください。

ファイアウォールの許可リストに次のURLを含めるように設定します。
URL ポート番号 機能
ghcr.io 443 Oracle Cloud Control Manager (CCM)およびContainer Storage Interface (CSI)のコンテナ・イメージを提供します。
registry.k8s.io 443 CCMおよびCSIのサポートするkubernetesコンテナ・イメージを提供します。