6.3. 非接続環境でベアメタルに Hosted Control Plane をデプロイする
Hosted Control Plane をベアメタルにプロビジョニングする場合は、Agent プラットフォームを使用します。Agent プラットフォームと multicluster engine for Kubernetes Operator が連携して、非接続デプロイメントを可能にします。Agent プラットフォームは、Central Infrastructure Management サービスを使用して、ホステッドクラスターにワーカーノードを追加します。Central Infrastructure Management の概要は、Central Infrastructure Management サービスの有効化 を参照してください。
6.3.1. ベアメタル向けの非接続環境のアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
以下の図は、非接続環境のアーキテクチャーの例を示しています。
- TLS サポートを備えたレジストリー証明書のデプロイメント、Web サーバー、DNS などのインフラストラクチャーサービスを設定して、非接続デプロイメントが確実に機能するようにします。
openshift-confignamespace に config map を作成します。この例では、config map の名前はregistry-configになります。config map の内容はレジストリー CA 証明書です。config map の data フィールドには、次のキー/値が含まれている必要があります。-
キー:
<registry_dns_domain_name>..<port>(例:registry.hypershiftdomain.lab..5000:)ポートを指定するときは、レジストリー DNS ドメイン名の後に..を配置するようにしてください。 値: 証明書の内容
config map の作成の詳細は、Hosted Control Plane の非接続インストールのために TLS 証明書を設定する を参照してください。
-
キー:
-
images.config.openshift.ioカスタムリソース (CR) 仕様を変更し、値がname: registry-configのadditionalTrustedCAという名前の新規フィールドを追加します。 2 つのデータフィールドを含む config map を作成します。1 つのフィールドには
RAW形式のregistries.confファイルが、もう 1 つのフィールドにはレジストリー CA が含まれ、ca-bundle.crtという名前が付けられます。config map はmulticluster-enginenamespace に属し、config map の名前は他のオブジェクトで参照されます。config map の例は、以下の設定例を参照してください。apiVersion: v1 kind: ConfigMap metadata: name: custom-registries namespace: multicluster-engine labels: app: assisted-service data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- # ... -----END CERTIFICATE----- registries.conf: | unqualified-search-registries = ["registry.access.redhat.com", "docker.io"] [[registry]] prefix = "" location = "registry.redhat.io/openshift4" mirror-by-digest-only = true [[registry.mirror]] location = "registry.ocp-edge-cluster-0.qe.lab.redhat.com:5000/openshift4" [[registry]] prefix = "" location = "registry.redhat.io/rhacm2" mirror-by-digest-only = true # ... # ...-
multicluster engine Operator の namespace で、Agent と
hypershift-addonアドオンの両方を有効にするmulticlusterengineCR を作成します。multicluster engine Operator の namespace には、非接続デプロイメントでの動作を変更するための config map が含まれている必要があります。namespace には、multicluster-engine、assisted-service、およびhypershift-addon-managerPod も含まれます。 ホステッドクラスターのデプロイに必要な次のオブジェクトを作成します。
- シークレット: シークレットには、プルシークレット、SSH キー、etcd 暗号化キーが含まれます。
- config map: config map には、プライベートレジストリーの CA 証明書が含まれています。
-
HostedCluster:HostedClusterリソースは、ユーザーが作成しようとしているクラスターの設定を定義します。 -
NodePool:NodePoolリソースは、データプレーンに使用するマシンを参照するノードプールを識別します。
-
ホステッドクラスターオブジェクトを作成した後、HyperShift Operator は、コントロールプレーン Pod に対応するために
HostedControlPlanenamespace を確立します。この namespace は、エージェント、ベアメタルホスト (BMH)、InfraEnvリソースなどのコンポーネントもホストします。その後、InfraEnvリソースを作成し、ISO の作成後に、Baseboard Management Controller (BMC) の認証情報を含む BMH とそのシークレットを作成します。 -
openshift-machine-apinamespace の Metal3 Operator は、新しい BMH を検査します。その後、Metal3 Operator は、multicluster engine Operator の namespace のAgentServiceConfigCR を通じて指定された設定済みのLiveISOおよびRootFSの値を使用して、BMC に接続して BMC を起動しようとします。 -
HostedClusterリソースのワーカーノードが起動された後、エージェントコンテナーが起動されます。このエージェントは、デプロイメントを完了するためのアクションを調整する Assisted Service との接続を確立します。最初に、NodePoolリソースをHostedClusterリソースのワーカーノードの数にスケーリングする必要があります。Assisted Service は残りのタスクを管理します。 - この時点で、デプロイメントプロセスが完了するまで待ちます。