20.2. Agent-based Installer を使用して Oracle Cloud Infrastructure (OCI) にクラスターをインストールする
OpenShift Container Platform 4.16 では、Agent-based Installer を使用して Oracle® Cloud Infrastructure (OCI) にクラスターをインストールすると、専用、ハイブリッド、パブリックおよびマルチクラウド環境をサポートするインフラストラクチャー上でクラスターのワークロードを実行できます。
20.2.1. Agent-based Installer と OCI の概要 リンクのコピーリンクがクリップボードにコピーされました!
Agent-based Installer を使用して、OpenShift Container Platform クラスターを Oracle® Cloud Infrastructure (OCI) にインストールできます。Red Hat と Oracle はどちらも、OCI 上の OpenShift Container Platform クラスターで OCI および Oracle® Cloud VMware Solution (OCVS) ワークロードの実行をテスト、検証、サポートしています。
Agent-based Installer は、Assisted Installation サービスを使いやすくするだけでなく、接続環境または非接続環境のいずれかにクラスターをインストールする機能を備えています。
次の図は、接続環境と非接続環境のワークフローを示しています。
図20.3 接続環境で Agent-based Installer を使用して OCI にクラスターをインストールするためのワークフロー
図20.4 非接続環境で Agent-based Installer を使用して OCI にクラスターをインストールするためのワークフロー
OCI は、規制コンプライアンス、パフォーマンス、費用対効果のニーズを満たすサービスを提供します。OCI は、64 ビット x86 インスタンスと 64 ビット ARM インスタンスをサポートします。さらに、OCI は、アプリケーションのアーキテクチャーの変更を最小限に抑えながら VMware ワークロードを OCI に移動できる OCVS サービスを提供します。
ブートディスクには、Nonvolatile Memory Express (NVMe) ドライブまたはソリッドステートドライブ (SSD) を選択することを検討してください。これらのドライブは、低遅延機能と高スループット機能をブートディスクに提供するためです。
OCI で OpenShift Container Platform クラスターを実行すると、次の機能を利用できます。
- コンピュートフレキシブルシェイプ。仮想マシンの Oracle® CPU (OCPU) とメモリーリソースの数をカスタマイズできます。この機能を利用すると、リソースのバランスが取れた環境でクラスターのワークロードが操作を実行できます。Red Hat Ecosystem Catalog ポータルの Oracle ページにアクセスすると、RHEL 認定を受けたすべての OCI シェイプを参照できます。
- ブロックボリュームストレージ。ストレージボリュームのスケーリングと自動チューニングを設定できるため、ブロックボリュームサービスによりパフォーマンスレベルを自動的に調整してパフォーマンスを最適化できます。
- OCVS。VMware® vSphere ソフトウェア定義データセンタ (SDDC) 上で動作するパブリッククラウド環境にクラスターをデプロイできます。VMware vSphere 環境に対する完全な管理権限を維持しながら、OCI サービスを使用して、柔軟かつスケーラブルでセキュアなインフラストラクチャー上でアプリケーションを改善できます。
OCI および OCVS サービス上で動作するクラスターワークロードに最適なパフォーマンス条件を確保するために、ブロックボリュームのボリュームパフォーマンスユニット (VPU) がワークロードに適したサイズに設定されていることを確認してください。次のリストを参考に、特定のパフォーマンスニーズに応じて必要な VPU を選択してください。
- テストまたは概念実証環境: 100 GB、20 - 30 VPU。
- 基本的な環境: 500 GB、60 VPU
- 高負荷の実稼働環境: 500 GB 以上、100 以上の VPU
更新やスケーリングアクティビティーに十分な容量を提供できるように、VPU を余分に確保しておくことを検討してください。VPU の詳細は、Oracle ドキュメントの「Volume Performance Units」を参照してください。
20.2.2. OCI インフラストラクチャーのリソースとサービスの作成 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) シェイプ上に OCI 環境を作成する必要があります。この環境を作成すると、OpenShift Container Platform をインストールし、幅広いクラウドオプションと強力なセキュリティーポリシーをサポートするインフラストラクチャーにクラスターをデプロイできます。OCI コンポーネントに関する事前の知識があれば、OCI リソースの概念を理解し、組織のニーズに合わせてリソースを設定する方法を理解するのに役立ちます。
OCI に OpenShift Container Platform クラスターをインストールするための Agent-based Installer 方式では、OCI リソースとサービスを手動で作成する必要があります。
OpenShift Container Platform との互換性を確保するには、各 DNS レコードのレコードタイプとして A を設定し、次のようにレコードに名前を付ける必要があります。
-
api.<cluster_name>.<base_domain>。これは API ロードバランサーのapiVIPパラメーターをターゲットとしています。 -
api-int.<cluster_name>.<base_domain>。これは API ロードバランサーのapiVIPパラメーターをターゲットとしています。 -
*.apps.<cluster_name>.<base_domain>。これは Ingress ロードバランサーのingressVIPパラメーターをターゲットとしています。
api.* および api-int.* DNS レコードは、コントロールプレーンマシンに関連しています。そのため、インストールした OpenShift Container Platform クラスター内のすべてのノードがこれらの DNS レコードにアクセスできることを確認する必要があります。
前提条件
- OpenShift Container Platform クラスターをホストするために OCI アカウントを設定しました。Prerequisites (Oracle ドキュメント) を参照してください。
手順
- 必要な OCI リソースとサービスを作成します。OCI Resources Needed for Using the Agent-based Installer (Oracle ドキュメント) を参照してください。
20.2.3. OCI にクラスターをインストールするための設定ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
Agent-based Installer を使用して起動可能な ISO イメージを生成できるように、install-config.yaml 設定ファイルと agent-config.yaml 設定ファイルを作成する必要があります。エージェントベースのインストールは、Assisted Discovery Agent と Assisted Service を含む起動可能な ISO で構成されます。これらのコンポーネントは、クラスターのインストールを実行するために両方とも必要ですが、後者のコンポーネントはいずれか 1 つのホストでのみ実行されます。
後の段階では、Oracle ドキュメントの手順に従って、生成されたエージェント ISO イメージを Oracle のデフォルトの Object Storage バケットにアップロードする必要があります。これは、OpenShift Container Platform クラスターを Oracle® Cloud Infrastructure (OCI) に統合するための最初の手順です。
Agent-based Installer を使用して、ゼロタッチプロビジョニング (ZTP) カスタムリソースを生成または受け入れることもできます。
前提条件
- OpenShift Container Platform のインストールおよび更新プロセスの詳細を確認している。
- クラスターインストール方法の選択およびそのユーザー向けの準備を確認している。
- 「Agent-based Installer を使用したインストールの準備」ドキュメントを確認した。
- Red Hat Hybrid Cloud Console から Agent-based Installer とコマンドラインインターフェイス (CLI) をダウンロードしている。
- 管理者権限で OpenShift Container Platform にログインしている。
手順
非接続環境の場合は、Red Hat OpenShift のミラーレジストリーをローカルコンテナーイメージレジストリーにミラーリングします。
重要openshift-installバイナリーのバージョンが、Red Hat Quay などの共有レジストリーではなく、ローカルイメージコンテナーレジストリーに関連していることを確認してください。./openshift-install version
$ ./openshift-install versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow 共有レジストリーバイナリーの出力例
./openshift-install 4.15.0 built from commit ae7977b7d1ca908674a0d45c5c243c766fa4b2ca release image registry.ci.openshift.org/origin/release:4.15ocp-release@sha256:0da6316466d60a3a4535d5fed3589feb0391989982fba59d47d4c729912d6363 release architecture amd64
./openshift-install 4.15.0 built from commit ae7977b7d1ca908674a0d45c5c243c766fa4b2ca release image registry.ci.openshift.org/origin/release:4.15ocp-release@sha256:0da6316466d60a3a4535d5fed3589feb0391989982fba59d47d4c729912d6363 release architecture amd64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 組織のニーズに合わせて
install-config.yaml設定ファイルを設定します。外部プラットフォームの設定を示す
install-config.yaml設定ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- クラウドプロバイダーのベースドメイン。
- 2
- ネットワーク上で機能するリソースおよびコンポーネントに対して CIDR が割り当てる仮想クラウドネットワーク (VCN) の IP アドレス。
- 3 4
- インフラストラクチャーに応じて、
x86_64またはamd64を選択できます。 - 5
- OpenShift Container Platform が OCI と統合できるように、
OCIを外部プラットフォームとして設定します。 - 6
- SSH 公開鍵を指定します。
- 7
- OpenShift Container Platform コンポーネントおよびサービス (Quay.io など) のコンテナーイメージをダウンロードするときに認証するために必要なプルシークレット。Red Hat Hybrid Cloud Console の Install OpenShift Container Platform 4 を参照してください。
ローカルシステム上に
openshiftという名前のディレクトリーを作成します。重要install-config.yamlおよびagent-config.yaml設定ファイルをopenshiftディレクトリーに移動しないでください。-
Oracle ドキュメントの "Configuration Files" セクションの手順を完了して、Oracle Cloud Controller Manager (CCM) および Oracle Container Storage Interface (CSI) マニフェストをアーカイブファイルとしてダウンロードし、アーカイブファイルを
openshiftディレクトリーに保存します。OpenShift Container Platform が外部 OCI プラットフォームに接続できるように、クラスターのインストール中に Oracle CCM をデプロイするために Oracle CCM マニフェストが必要です。OpenShift Container Platform が OCI から必要なオブジェクトを要求できるように、クラスターのインストール中に Oracle CSI ドライバーをデプロイするために Oracle CSI カスタムマニフェストが必要です。 Oracle ドキュメントの "Configuration Files" セクションで提供されているカスタムマニフェストファイルにアクセスします。
-
oci-ccm.yml設定ファイルで定義されているoci-cloud-controller-managerシークレットを、組織のリージョン、コンパートメント OCID、VCN OCID、およびロードバランサーのサブネット OCID と一致するように変更します。
-
OpenShift Container Platform CLI で次のコマンドを入力し、Agent-based Installer を使用して、rootfs イメージを除いた最小限の ISO イメージを生成します。後のプロセスでこのイメージを使用して、クラスターのすべてのノードを起動できます。
./openshift-install agent create image --log-level debug
$ ./openshift-install agent create image --log-level debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは次の操作も実行します。
-
サブディレクトリー
./<installation_directory>/auth directory:を作成し、そのサブディレクトリーにkubeadmin-passwordファイルとkubeconfigファイルを配置します。 -
agent-config.yaml設定ファイルで指定した IP アドレスに基づいて、rendezvousIPファイルを作成します。 オプション:
agent-config.yamlおよびinstall-config.yaml設定ファイルに加えた変更は、すべてゼロタッチプロビジョニング (ZTP) カスタムリソースにインポートされます。重要Agent-based Installer は Red Hat Enterprise Linux CoreOS (RHCOS) を使用します。後述のリスト項目で説明する rootfs イメージは、オペレーティングシステムの起動、復旧、修復に必要です。
-
サブディレクトリー
組織の要件に合わせて
agent-config.yaml設定ファイルを設定します。IPv4 形式のネットワークの値を設定する
agent-config.yaml設定ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- DNS レコードに指定したクラスター名。
- 2
- OpenShift Container Platform 上のクラスターの namespace。
- 3
- ネットワーク IP アドレス形式として IPv4 を使用する場合は、
rendezvousIPパラメーターを、VCN の Classless Inter-Domain Routing (CIDR) 方式によってネットワークに割り当てられる IPv4 アドレスに必ず設定してください。また、ISO を使用して起動したインスタンスのプールの少なくとも 1 つのインスタンスが、rendezvousIPに設定した IP アドレス値と一致することを確認してください。 - 4
- rootfs イメージをアップロードするサーバーの URL。
次のどちらかの更新を、
agent-config.yaml設定ファイルに適用します。非接続ネットワークの場合: コマンドを実行して最小限の ISO イメージを生成すると、Agent-based Installer によって rootfs イメージがローカルシステムの
./<installation_directory>/boot-artifactsディレクトリーに保存されます。任意の Hypertext Transfer Protocol デーモン (httpd) などの優先 Web サーバーを使用して、agent-config.yaml設定ファイルのbootArtifactsBaseURLパラメーターに指定された場所に rootfs をアップロードします。たとえば、
bootArtifactsBaseURLパラメーターにhttp://192.168.122.20と指定されている場合、生成された rootfs イメージをこの場所にアップロードして、Agent-based Installer がhttp://192.168.122.20/agent.x86_64-rootfs.imgからイメージにアクセスできるようにします。Agent-based Installer は、外部プラットフォームの最小限の ISO を起動した後、http://192.168.122.20/agent.x86_64-rootfs.imgの場所から rootfs イメージをシステムメモリーにダウンロードします。注記また、Agent-based Installer は、Operator がクラスターのノードを起動するときに rootfs イメージをシステムメモリーにダウンロードするために、
bootArtifactsBaseURLの値を最小限の ISO イメージの設定に追加します。接続されたネットワークの場合:
agent-config.yaml設定ファイルでbootArtifactsBaseURLパラメーターを指定する必要はありません。Agent-based Installer のデフォルトの動作で、https://rhcos.mirror.openshift.comから rootfs URL の場所を読み取ります。Agent-based Installer は、外部プラットフォームの最小限の ISO を起動した後、デフォルトの RHCOS URL から rootfs ファイルをシステムのメモリーにダウンロードします。重要1GB を超える完全な ISO イメージには、rootfs イメージが含まれていることに注意してください。このイメージは、通常150MB 未満の最小 ISO イメージよりも大きくなります。
20.2.4. OpenShift Container Platform のファイアウォールの設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform をインストールする前に、ファイアウォールを、OpenShift Container Platform が必要とするサイトへのアクセスを付与するように設定する必要があります。ファイアウォールを使用する場合は、OpenShift Container Platform が機能するために必要なサイトにアクセスできるように、ファイアウォールに追加の設定を行います。
非接続環境の場合は、Red Hat と Oracle の両方のコンテンツをミラーリングする必要があります。このような環境では、ファイアウォールを特定のポートとレジストリーに公開するためのファイアウォールルールを作成する必要があります。
ご使用の環境で OpenShift Container Platform クラスターの前に専用のロードバランサーがある場合は、ファイアウォールとロードバランサーの間の許可リストを確認して、クラスターに対する不要なネットワーク制限を回避してください。
手順
ファイアウォールの許可リストに次のレジストリー URL を設定します。
Expand URL ポート 機能 registry.redhat.io443
コアコンテナーイメージを指定します。
access.redhat.com443
コンテナークライアントが
registry.access.redhat.comから取得したイメージを検証するのに必要な署名ストアをホストします。ファイアウォール環境では、このリソースが許可リストに含まれていることを確認してください。registry.access.redhat.com443
コアコンテナーイメージを含め、Red Hat Ecosystem Catalog に保存されているすべてのコンテナーイメージをホストします。
quay.io443
コアコンテナーイメージを指定します。
cdn.quay.io443
コアコンテナーイメージを指定します。
cdn01.quay.io443
コアコンテナーイメージを指定します。
cdn02.quay.io443
コアコンテナーイメージを指定します。
cdn03.quay.io443
コアコンテナーイメージを指定します。
cdn04.quay.io443
コアコンテナーイメージを指定します。
cdn05.quay.io443
コアコンテナーイメージを指定します。
cdn06.quay.io443
コアコンテナーイメージを指定します。
sso.redhat.com443
https://console.redhat.comサイトは、sso.redhat.comからの認証を使用します。-
許可リストで
cdn.quay.ioとcdn0[1-6].quay.ioの代わりに、ワイルドカードの*.quay.ioと*.openshiftapps.comを使用できます。 -
ワイルドカード
*.access.redhat.comを使用すると、設定を簡素化し、registry.access.redhat.comを含むすべてのサブドメインを許可できます。 -
quay.ioなどのサイトを許可リストに追加するには、*.quay.ioなどのワイルドカードエントリーを拒否リストに加えないでください。ほとんどの場合、イメージレジストリーはコンテンツ配信ネットワーク (CDN) を使用してイメージを提供します。ファイアウォールがアクセスをブロックすると、最初のダウンロード要求がcdn01.quay.ioなどのホスト名にリダイレクトされるときに、イメージのダウンロードが拒否されます。
-
許可リストで
- ファイアウォールの許可リストを設定し、ビルドに必要な言語またはフレームワークのリソースを提供するサイトをリストに含めます。
Telemetry を無効にしていない場合は、以下の URL へのアクセスを許可して Red Hat Insights にアクセスできるようにする必要があります。
Expand URL ポート 機能 cert-api.access.redhat.com443
Telemetry で必須
api.access.redhat.com443
Telemetry で必須
infogw.api.openshift.com443
Telemetry で必須
console.redhat.com443
Telemetry および
insights-operatorで必須ファイアウォールの許可リストを設定し、次のレジストリー URL をリストに含めます。
Expand URL ポート 機能 api.openshift.com443
クラスタートークンの両方が必要であり、クラスターに更新が利用可能かどうかを確認するために必要です。
rhcos.mirror.openshift.com443
Red Hat Enterprise Linux CoreOS (RHCOS) イメージをダウンロードするために必要。
ファイアウォールの許可リストを設定し、次の外部 URL をリストに含めます。各リポジトリー URL は OCI コンテナーをホストします。パフォーマンスの問題を軽減するために、イメージをミラーリングするリポジトリーの数をできる限り少なくすることを検討してください。
Expand URL ポート 機能 k8s.gcr.ioport
コミュニティーベースのイメージレジストリーのコンテナーイメージをホストする Kubernetes レジストリー。このイメージレジストリーは、カスタム Google Container Registry (GCR) ドメインでホストされています。
ghcr.ioport
Open Container Initiative イメージを保存および管理できる GitHub イメージレジストリー。プライベート、内部、パブリックパッケージを公開、インストール、削除するには、アクセストークンが必要です。
storage.googleapis.com443
リリースイメージ署名のソース (ただし、Cluster Version Operator には単一の機能ソースのみが必要)。
registry.k8s.ioport
k8s.gcr.ioイメージレジストリーを置き換えます。これは、k8s.gcr.ioイメージレジストリーが他のプラットフォームやベンダーをサポートしていないためです。
20.2.5. OCI でのクラスターの実行 リンクのコピーリンクがクリップボードにコピーされました!
Oracle® Cloud Infrastructure (OCI) でクラスターを実行するには、生成されたエージェント ISO イメージを OCI のデフォルトの Object Storage バケットにアップロードする必要があります。さらに、OCI 上でクラスターを実行するために OpenShift Container Platform と OCI が相互に通信できるように、提供されたベースイメージからコンピュートインスタンスを作成する必要があります。
OCI は、次の OpenShift Container Platform クラスタートポロジーをサポートしています。
- シングルノードへの OpenShift Container Platform クラスターのインストール
- 少なくとも 3 つのコントロールプレーンインスタンスと 2 つのコンピュートインスタンスを持つ高可用性クラスター
- 少なくとも 3 つのコントロールプレーンインスタンスを持つコンパクトな 3 ノードクラスター
前提条件
- エージェント ISO イメージを生成した。「OCI にクラスターをインストールするための設定ファイルの作成」を参照してください。
手順
- エージェント ISO イメージを Oracle のデフォルトの Object Storage バケットにアップロードし、エージェント ISO イメージをカスタムイメージとしてこのバケットにインポートします。カスタムイメージが Unified Extensible Firmware Interface (UEFI) モードで起動するように設定されていることを確認します。詳細は、Creating the OpenShift Container Platform ISO Image (Oracle ドキュメント) を参照してください。
クラスタートポロジー用に提供されたベースイメージからコンピュートインスタンスを作成します。Creating the OpenShift Container Platform cluster on OCI (Oracle ドキュメント) を参照してください。
重要コンピュートインスタンスを作成する前に、クラスターに十分なメモリーとディスクリソースがあることを確認してください。さらに、少なくとも 1 つのコンピュートインスタンスが、
agent-config.yamlファイルのrendezvousIPに記載されているアドレスと同じ IP アドレスを持っていることを確認してください。
20.2.6. エージェントベースのクラスターのインストールが OCI 上で実行されることを確認する リンクのコピーリンクがクリップボードにコピーされました!
クラスターがインストールされ、Oracle® Cloud Infrastructure (OCI) 上で効果的に実行されていることを確認します。
前提条件
- 必要な OCI リソースとサービスをすべて作成した。「OCI インフラストラクチャーのリソースとサービスの作成」を参照してください。
-
install-config.yaml設定ファイルとagent-config.yaml設定ファイルを作成した。「OCI にクラスターをインストールするための設定ファイルの作成」を参照してください。 - エージェント ISO イメージを Oracle のデフォルトの Object Storage バケットにアップロードし、OCI 上にコンピュートインスタンスを作成した。詳細は、「OCI でのクラスターの実行」を参照してください。
手順
OpenShift Container Platform クラスター内の自己管理ノードにコンピュートインスタンスをデプロイした後、以下のいずれかの方法でクラスターのステータスを監視できます。
OpenShift Container Platform CLI から次のコマンドを入力します。
./openshift-install agent wait-for install-complete --log-level debug
$ ./openshift-install agent wait-for install-complete --log-level debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow ブートストラップノードが動作する
rendezvousホストノードの状態を確認します。ホストが再起動すると、ホストはクラスターの一部となります。kubeconfigAPI を使用して、さまざまな OpenShift Container Platform コンポーネントのステータスを確認します。KUBECONFIG環境変数に、クラスターのkubeconfig設定ファイルの相対パスを設定します。export KUBECONFIG=~/auth/kubeconfig
$ export KUBECONFIG=~/auth/kubeconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターの各自己管理ノードのステータスを確認します。CCM は、各ノードにラベルを適用して、ノードを OCI 上のクラスターで実行するよう指定します。
oc get nodes -A
$ oc get nodes -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION main-0.private.agenttest.oraclevcn.com Ready control-plane, master 7m v1.27.4+6eeca63 main-1.private.agenttest.oraclevcn.com Ready control-plane, master 15m v1.27.4+d7fa83f main-2.private.agenttest.oraclevcn.com Ready control-plane, master 15m v1.27.4+d7fa83f
NAME STATUS ROLES AGE VERSION main-0.private.agenttest.oraclevcn.com Ready control-plane, master 7m v1.27.4+6eeca63 main-1.private.agenttest.oraclevcn.com Ready control-plane, master 15m v1.27.4+d7fa83f main-2.private.agenttest.oraclevcn.com Ready control-plane, master 15m v1.27.4+d7fa83fCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターの各 Operator のステータスを確認します。CCM Operator のステータスは、クラスターが実行中であることを示す適切な指標です。
oc get co
$ oc get coCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例 (一部のみ記載)
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE authentication 4.15.0-0 True False False 6m18s baremetal 4.15.0-0 True False False 2m42s network 4.15.0-0 True True False 5m58s Progressing: … …NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE authentication 4.15.0-0 True False False 6m18s baremetal 4.15.0-0 True False False 2m42s network 4.15.0-0 True True False 5m58s Progressing: … …Copy to Clipboard Copied! Toggle word wrap Toggle overflow