6.3. 非接続環境でベアメタルに Hosted Control Plane をデプロイする
Hosted Control Plane をベアメタルにプロビジョニングする場合は、Agent プラットフォームを使用します。Agent プラットフォームと multicluster engine for Kubernetes Operator が連携して、非接続デプロイメントを可能にします。Agent プラットフォームは、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 は残りのタスクを管理します。 - この時点で、デプロイメントプロセスが完了するまで待ちます。