1.7. ホステッドコントロールプレーン (テクノロジープレビュー)
マルチクラスターエンジン Operator クラスター管理では、スタンドアロンまたはホステッドコントロールプレーンの 2 つの異なるコントロールプレーン設定を使用して、OpenShift Container Platform クラスターをデプロイできます。スタンドアロン設定では、専用の仮想マシンまたは物理マシンを使用して、OpenShift Container Platform のコントロールプレーンをホストします。OpenShift Container Platform の Hosted Control Plane を使用すると、コントロールプレーンごとに専用の物理マシンを必要とせずに、ホスティングクラスター上にコントロールプレーンを Pod として作成できます。
OpenShift Container Platform のホステッドコントロールプレーンは、Amazon Web Services (AWS) およびベアメタルでテクノロジープレビュー機能として利用できます。コントロールプレーンは、OpenShift Container Platform バージョン 4.10.7 以降でホスティングできます。
注記: ホステッドコントロールプレーンの同じプラットフォームで、ハブクラスターとワーカーを実行します。
コントロールプレーンは、単一の namespace に含まれる Pod として実行され、Hosted Control Plane クラスターに関連付けられます。OpenShift Container Platform がこのタイプのホステッドクラスターを作成すると、コントロールプレーンから独立したワーカーノードが作成されます。
Hosted Control Plane クラスターには、いくつかの利点があります。
- 専用コントロールプレーンノードをホストする必要がなくなるため、コストを節約できます。
- コントロールプレーンとワークロードを分離することで、分離が改善され、変更が必要になる設定エラーが減少します。
- コントロールプレーンノードのブートストラップの要件をなくすことで、クラスターの作成時間を短縮します。
- ターンキーデプロイメントまたは完全にカスタマイズされた OpenShift Container Platform プロビジョニングをサポートします。
ホステッドコントロールプレーンの詳細については、以下のトピックを参照してください。
1.7.1. AWS でのホスティングクラスターの設定 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Hosted Control Plane を設定するには、ホスティングクラスターとホステッドクラスターが必要です。hypershift-addon マネージドクラスターアドオンを使用して既存のマネージドクラスターに HyperShift Operator をデプロイすることにより、そのクラスターをホスティングクラスターとして有効にして、ホステッドクラスターを作成し始めることができます。
マルチクラスターエンジン Operator 2.2 は、デフォルトの local-cluster とハブクラスターのみをホスティングクラスターとしてサポートします。
ホステッドコントロールプレーンはテクノロジープレビュー機能であるため、関連コンポーネントはデフォルトで無効になっています。
既存のクラスターをホスティングクラスターとして機能するように設定することで、Hosted control plane をデプロイできます。ホスティングクラスターは、コントロールプレーンがホストされている Red Hat OpenShift Container Platform クラスターです。Red Hat Advanced Cluster Management 2.7 は、local-cluster とも呼ばれるハブクラスターをホスティングクラスターとして使用できます。local-cluster をホスティングクラスターとして設定する方法については、次のトピックを参照してください。
ベストプラクティス: ホステッドコントロールプレーンでは、必ず同じプラットフォームでハブクラスターとワーカーを実行してください。
1.7.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホスティングクラスターを設定するには、次の前提条件を満たす必要があります。
- OpenShift Container Platform クラスターにインストールされた Kubernetes Operator 2.2 以降のマルチクラスターエンジン。マルチクラスターエンジン Operator は、Red Hat Advanced Cluster Management をインストールすると自動的にインストールされます。マルチクラスターエンジン Operator は、Red Hat Advanced Cluster Management を使用せずに OpenShift Container Platform OperatorHub から Operator としてインストールすることもできます。
マルチクラスターエンジン Operator には、少なくとも 1 つのマネージド OpenShift Container Platform クラスターが必要です。
local-clusterは、マルチクラスターエンジン Operator 2.2 以降で自動的にインポートされます。local-clusterの詳細については、詳細設定 を参照してください。次のコマンドを実行して、ハブクラスターの状態を確認できます。oc get managedclusters local-cluster
oc get managedclusters local-clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow - HyperShift Operator を実行するための少なくとも 3 つのワーカーノードを含むホスティングクラスター。
- AWS コマンドラインインターフェイス。
1.7.1.2. Amazon Web Services S3 バケットと S3 OIDC シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
AWS でホステッドクラスターを作成および管理する予定の場合は、次の手順を実行します。
クラスターの OIDC 検出ドキュメントをホストするためのパブリックアクセスを持つ S3 バケットを作成します。
us-east-1 リージョンにバケットを作成するには、次のコードを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow us-east-1 リージョン以外のリージョンにバケットを作成するには、次のコードを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
HyperShift Operator 用に
hypershift-operator-oidc-provider-s3-credentialsという名前の OIDC S3 シークレットを作成します。 -
シークレットを
local-clusternamespace に保存します。 次の表を参照して、シークレットに次のフィールドが含まれていることを確認します。
Expand フィールド名 設定 bucketHyperShift クラスターの OIDC 検出ドキュメントをホストするためのパブリックアクセスを備えた S3 バケットが含まれます。
credentialsバケットにアクセスできる
defaultプロファイルの認証情報を含むファイルへの参照。デフォルトでは、HyperShift はdefaultプロファイルのみを使用してバケットを操作します。regionS3 バケットのリージョンを指定します。
次の例は、サンプルの AWS シークレットテンプレートを示しています。
oc create secret generic hypershift-operator-oidc-provider-s3-credentials --from-file=credentials=$HOME/.aws/credentials --from-literal=bucket=<s3-bucket-for-hypershift> --from-literal=region=<region> -n local-cluster
oc create secret generic hypershift-operator-oidc-provider-s3-credentials --from-file=credentials=$HOME/.aws/credentials --from-literal=bucket=<s3-bucket-for-hypershift> --from-literal=region=<region> -n local-clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: シークレットのリカバリーバックアップは自動的に有効になりません。以下のコマンドを実行して、障害復旧用に
hypershift-operator-oidc-provider-s3-credentialsシークレットのバックアップを有効にするラベルを追加します。oc label secret hypershift-operator-oidc-provider-s3-credentials -n local-cluster cluster.open-cluster-management.io/backup=true
oc label secret hypershift-operator-oidc-provider-s3-credentials -n local-cluster cluster.open-cluster-management.io/backup=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.1.3. ルーティング可能なパブリックゾーンの作成 リンクのコピーリンクがクリップボードにコピーされました!
ゲストクラスター内のアプリケーションにアクセスするには、パブリックゾーンがルーティング可能である必要があります。パブリックゾーンが存在する場合は、この手順を省略します。省力しない場合は、パブリックゾーンが既存の機能に影響を及ぼします。
次のコマンドを実行して、クラスター DNS レコードのパブリックゾーンを作成します。
BASE_DOMAIN=www.example.com aws route53 create-hosted-zone --name $BASE_DOMAIN --caller-reference $(whoami)-$(date --rfc-3339=date)
BASE_DOMAIN=www.example.com
aws route53 create-hosted-zone --name $BASE_DOMAIN --caller-reference $(whoami)-$(date --rfc-3339=date)
1.7.1.4. 外部 DNS の有効化 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーンクラスターをサービスレベル DNS (外部 DNS) でプロビジョニングする予定の場合は、次の手順を実行します。
-
HyperShift Operator の AWS 認証情報シークレットを作成し、
local-cluster名前空間でhypershift-operator-external-dns-credentialsという名前を付けます。 シークレットに必須フィールドが含まれていることを確認するには、以下の表を参照してください。
Expand フィールド名 設定 任意または必須 providerサービスレベル DNS ゾーンを管理する DNS プロバイダー。
必須
domain-filterサービスレベルドメイン。
必須
credentialsすべての外部 DNS タイプをサポートする認証情報ファイル。
AWS キーを使用する場合のオプション
aws-access-key-id認証情報アクセスキー ID。
AWS DNS サービスを使用する場合のオプション
aws-secret-access-key認証情報アクセスキーのシークレット。
AWS DNS サービスを使用する場合のオプション
詳細は、HyperShift ドキュメントの 外部 DNS を参照してください。次の例は、サンプルの
hypershift-operator-external-dns-credentialsシークレットテンプレートを示しています。oc create secret generic hypershift-operator-external-dns-credentials --from-literal=provider=aws --from-literal=domain-filter=service.my.domain.com --from-file=credentials=<credentials-file> -n local-cluster
oc create secret generic hypershift-operator-external-dns-credentials --from-literal=provider=aws --from-literal=domain-filter=service.my.domain.com --from-file=credentials=<credentials-file> -n local-clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: シークレットのリカバリーバックアップは自動的に有効になりません。以下のコマンドを実行して、障害復旧用に
hypershift-operator-external-dns-credentialsシークレットのバックアップを有効にするラベルを追加します。oc label secret hypershift-operator-external-dns-credentials -n local-cluster cluster.open-cluster-management.io/backup=""
oc label secret hypershift-operator-external-dns-credentials -n local-cluster cluster.open-cluster-management.io/backup=""Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.1.5. AWS PrivateLink の有効化 リンクのコピーリンクがクリップボードにコピーされました!
PrivateLink を使用して AWS プラットフォームで Hosted Control Plane クラスターをプロビジョニングする予定の場合は、次の手順を実行します。
-
HyperShift Operator の AWS 認証情報シークレットを作成し、
hypershift-operator-private-link-credentialsという名前を付けます。シークレットは、ホスティングクラスターとして使用されるマネージドクラスターの namespace であるマネージドクラスター namespace に存在する必要があります。local-clusterを使用した場合は、local-clusternamespace にシークレットを作成します シークレットに必要なフィールドが含まれることを確認するには、以下の表を参照してください。
Expand フィールド名
設定
任意または必須
regionPrivate Link で使用するリージョン
必須
aws-access-key-id認証情報アクセスキー ID。
必須
aws-secret-access-key認証情報アクセスキーのシークレット。
必須
詳細は、HyperShift ドキュメントのAWS プライベートクラスターのデプロイ を参照してください。次の例は、サンプルの
hypershift-operator-private-link-credentialsシークレットテンプレートを示しています。oc create secret generic hypershift-operator-private-link-credentials --from-literal=aws-access-key-id=<aws-access-key-id> --from-literal=aws-secret-access-key=<aws-secret-access-key> --from-literal=region=<region> -n local-cluster
oc create secret generic hypershift-operator-private-link-credentials --from-literal=aws-access-key-id=<aws-access-key-id> --from-literal=aws-secret-access-key=<aws-secret-access-key> --from-literal=region=<region> -n local-clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: シークレットのリカバリーバックアップは自動的に有効になりません。以下のコマンドを実行して、障害復旧用に
hypershift-operator-private-link-credentialsシークレットのバックアップを有効にするラベルを追加します。oc label secret hypershift-operator-private-link-credentials -n local-cluster cluster.open-cluster-management.io/backup=""
oc label secret hypershift-operator-private-link-credentials -n local-cluster cluster.open-cluster-management.io/backup=""Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.1.6. ホステッドコントロールプレーン機能の有効化 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーン機能はデフォルトで無効になっています。この機能を自動的に有効にすると、hypershift-addon マネージドクラスターアドオンも有効になります。次のコマンドを実行して、以下の機能を有効にすることができます。
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": true}]}}}'
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": true}]}}}'
次のコマンドを実行して、hypershift-preview および hypershift-local-hosting 機能が MultiClusterEngine カスタムリソースで有効になっていることを確認します。
oc get mce multiclusterengine -o yaml
oc get mce multiclusterengine -o yaml
1.7.1.6.1. local-cluster の hypershift-addon マネージドクラスターアドオンを手動で有効にする リンクのコピーリンクがクリップボードにコピーされました!
Hosted Control Plane 機能を有効にすると、hypershift-addon マネージドクラスターアドオンが自動的に有効になります。hypershift-addon マネージドクラスターアドオンを手動で有効にする必要がある場合は、次の手順を実行して hypershift-addon を使用し、HyperShift Operator を local-cluster にインストールします。
以下の例のようなファイルを作成して、
ManagedClusterAddonHyperShift アドオンを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してこのファイルを適用します。
oc apply -f <filename>
oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow filenameは、作成したファイル名に置き換えます。以下のコマンドを実行して、
hypershift-addonがインストールされていることを確認します。oc get managedclusteraddons -n local-cluster hypershift-addon
oc get managedclusteraddons -n local-cluster hypershift-addonCopy to Clipboard Copied! Toggle word wrap Toggle overflow アドオンがインストールされている場合、出力は以下の例のようになります。
NAME AVAILABLE DEGRADED PROGRESSING hypershift-addon True
NAME AVAILABLE DEGRADED PROGRESSING hypershift-addon TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
HyperShift アドオンがインストールされ、HyperShift クラスターを作成および管理するためのホスティングクラスターが利用できます。
1.7.1.7. ホステッドコントロールプレーン CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーン (HyperShift) CLI は、OpenShift Container Platform のホステッドコントロールプレーンクラスターを作成および管理するために使用されます。ホステッドコントロールプレーン機能を有効にした後、次の手順を実行してホステッドコントロールプレーン CLI をインストールできます。
- OpenShift Container Platform コンソールから、Help icon > Command Line Tools をクリックします。
お使いのプラットフォームの Download hypershift CLI をクリックします。
注記: ダウンロードは
hypershift-preview機能を有効にしている場合にのみ表示されます。次のコマンドを実行して、ダウンロードしたアーカイブを解凍します。
tar xvzf hypershift.tar.gz
tar xvzf hypershift.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、バイナリーファイルを実行可能にします。
chmod +x hypershift
chmod +x hypershiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、バイナリーファイルをパス内のディレクトリーに移動します。
sudo mv hypershift /usr/local/bin/.
sudo mv hypershift /usr/local/bin/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
hypershift create cluster コマンドを使用して、ホステッドクラスターを作成および管理できるようになりました。次のコマンドを使用して、使用可能なパラメーターを一覧表示します。
hypershift create cluster aws --help
hypershift create cluster aws --help
1.7.1.8. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- AWS 認証情報シークレットの詳細は、HyperShift ドキュメントの AWS プライベートクラスターのデプロイ を参照してください。
- 外部 DNS の詳細は、HyperShift ドキュメントの 外部 DNS を参照してください。
- SR-IOV Operator をデプロイできるようになりました。SR-IOV Operator のデプロイに関する詳細は、ホステッドコントロールプレーン用の SR-IOV Operator のデプロイ を参照してください。
1.7.2. AWS でのホステッドコントロールプレーンクラスターの管理 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Operator コンソール用のマルチクラスターエンジンを使用して、Red Hat OpenShift Container Platform がホストするクラスターを作成できます。ホステッドコントロールプレーンは、Amazon Web Services (AWS) でテクノロジープレビューとして利用できます。AWS でホステッドコントロールプレーンを使用する場合、コンソールを使用してホステッドクラスターを作成するか、コンソールまたは CLI のいずれかを使用してホステッドクラスターをインポートすることができます。
1.7.2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーンクラスターを作成する前に、ホステッドコントロールプレーンを設定する必要があります。詳細については、ホステッドコントロールプレーンの設定 (テクノロジープレビュー) を参照してください。
1.7.2.2. コンソールを使用した AWS でのホステッドコントロールプレーンクラスターの作成 リンクのコピーリンクがクリップボードにコピーされました!
マルチクラスターエンジン Operator コンソールからホステッドコントロールプレーンクラスターを作成するには、Infrastructure > Clusters に移動します。クラスター ページで、Create cluster > Amazon Web Services > Hosted をクリックし、コンソールで手順を完了します。
注記: コンソールにアクセスしたら、提供される基本情報を使用して、コマンドラインでクラスターを作成します。
1.7.2.3. コマンドラインを使用して AWS にホストされたクラスターをデプロイする リンクのコピーリンクがクリップボードにコピーされました!
HyperShift コマンドラインインターフェイスをセットアップし、local-cluster をホスティングクラスターとして有効化したら、以下の手順を実行して、ホステッドクラスターを AWS にデプロイできます。
環境変数を次のように設定し、必要に応じて変数を認証情報に置き換えます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CLUSTER_NAMEとINFRA_IDの値が同じであることを確認してください。そうしないと、クラスターが Kubernetes Operator コンソールのマルチクラスターエンジンに正しく表示されない可能性があります。各変数の説明を表示するには、次のコマンドを実行します。hypershift create cluster aws --help
hypershift create cluster aws --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ハブクラスターにログインしていることを確認します。
次のコマンドを実行して、ホステッドクラスターを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: デフォルトでは、
HostedClusterとNodePoolのすべてのカスタムリソースがclustersnamespace に作成されます。--namespace <namespace>パラメーターを指定すると、選択した namespace にHostedClusterおよびNodePoolカスタムリソースが作成されます。以下のコマンドを実行して、ホステッドクラスターのステータスを確認することもできます。
oc get hostedclusters -n <hypershift-hosting-service-cluster>
oc get hostedclusters -n <hypershift-hosting-service-cluster>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.2.4. ホストされたコントロールプレーンクラスターの AWS へのインポート リンクのコピーリンクがクリップボードにコピーされました!
コンソールを使用して、ホストされたコントロールプレーンクラスターをインポートできます。
- Infrastructure > Clusters に移動し、インポート予定の、ホストされたクラスターを選択します。
ホストされたクラスターのインポート をクリックします。
注記: 検出された ホステッドクラスターについては、コンソールからインポートすることもできますが、クラスターはアップグレード可能な状態である必要があります。Hosted Control Plane を使用できないため、ホステッドクラスターがアップグレード可能な状態ではない場合、クラスターへのインポートは無効になります。Import をクリックして、プロセスを開始します。クラスターが更新を受信している間、ステータスは
Importingであり、その後、Readyに変わります。
次の手順を完了し、CLI を使用して AWS でホストされたコントロールプレーンクラスターをインポートすることもできます。
以下のコマンドを実行して、アノテーションを
HostedClusterカスタムリソースに追加します。oc edit hostedcluster <cluster_name> -n clusters
oc edit hostedcluster <cluster_name> -n clustersCopy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>は、ホステッドクラスターの名前に置き換えます。以下のコマンドを実行して、アノテーションを
HostedClusterカスタムリソースに追加します。cluster.open-cluster-management.io/hypershiftdeployment: local-cluster/<cluster_name> cluster.open-cluster-management.io/managedcluster-name: <cluster_name>
cluster.open-cluster-management.io/hypershiftdeployment: local-cluster/<cluster_name> cluster.open-cluster-management.io/managedcluster-name: <cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>は、ホステッドクラスターの名前に置き換えます。以下のサンプル YAML ファイルを使用して、
ManagedClusterリソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>は、ホステッドクラスターの名前に置き換えます。以下のコマンドを実行してリソースを適用します。
oc apply -f <file_name>
oc apply -f <file_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <file_name> を、直前の手順で作成した YAML ファイル名に置き換えます。
以下のサンプル YAML ファイルを使用して、
KlusterletAddonConfigリソースを作成します。これは、Red Hat Advanced Cluster Management にのみ適用されます。マルチクラスターエンジン Operator のみをインストールした場合は、この手順を省略します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>は、ホステッドクラスターの名前に置き換えます。以下のコマンドを実行してリソースを適用します。
oc apply -f <file_name>
oc apply -f <file_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <file_name> を、直前の手順で作成した YAML ファイル名に置き換えます。
インポートプロセスが完了すると、ホステッドクラスターがコンソールに表示されます。以下のコマンドを実行して、ホステッドクラスターのステータスを確認することもできます。
oc get managedcluster <cluster_name>
oc get managedcluster <cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.2.5. AWS でのホスティングクラスターへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーンクラスターのアクセスシークレットは、hypershift-management-cluster 名前空間に格納されます。以下のシークレット名の形式を参照してください。
-
kubeconfigシークレット:<hostingNamespace>-<name>-admin-kubeconfig(clusters-hypershift-demo-admin-kubeconfig) -
kubeadminパスワードシークレット:<hostingNamespace>-<name>-kubeadmin-password(clusters-hypershift-demo-kubeadmin-password)
1.7.2.6. AWS でのホステッドクラスターの破棄 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターとそのマネージドクラスターリソースを破棄するには、次の手順を実行します。
次のコマンドを実行して、ホステッドクラスターとそのバックエンドリソースを削除します。
hypershift destroy cluster aws --name <cluster_name> --infra-id <infra_id> --aws-creds <aws-credentials> --base-domain <base_domain> --destroy-cloud-resources
hypershift destroy cluster aws --name <cluster_name> --infra-id <infra_id> --aws-creds <aws-credentials> --base-domain <base_domain> --destroy-cloud-resourcesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて名前を置き換えます。
次のコマンドを実行して、マルチクラスターエンジン Operator のマネージドクラスターリソースを削除します。
oc delete managedcluster <cluster_name>
oc delete managedcluster <cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster_nameをクラスターの名前に置き換えます。
1.7.3. ベアメタルでのホスティングクラスターの設定 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーンを設定するには、ホスティング クラスターと ホステッド クラスターが必要です。hypershift アドオンを使用してマネージドクラスターをホスティングクラスターとして有効にし、そのクラスターに HyperShift Operator をデプロイできます。その後、ホストされたクラスターの作成を開始できます。
マルチクラスターエンジン Operator 2.2 は、デフォルトの local-cluster とハブクラスターのみをホスティングクラスターとしてサポートします。
ホステッドコントロールプレーンはテクノロジープレビュー機能であるため、関連コンポーネントはデフォルトで無効になっています。
ホスティングクラスターとして機能するようにクラスターを設定することで、ホストされたコントロールプレーンをデプロイメントできます。ホスティングクラスターは、コントロールプレーンがホストされる OpenShift Container Platform クラスターです。
Red Hat Advanced Cluster Management 2.7 では、local-cluster としても知られるマネージドハブクラスターをホスティングクラスターとして使用できます。
重要:
- ホステッドコントロールプレーンの同じプラットフォームで、ハブクラスターとワーカーを実行します。
- エージェントプラットフォームを使用して、Hosted Control Plane をベアメタルでプロビジョニングできます。Agent プラットフォームは、Central Infrastructure Management サービスを使用して、ホステッドクラスターにワーカーノードを追加します。
-
各ベアメタルホストは、central infrastructure management が提供する検出イメージを使用して開始する必要があります。ホストは手動で起動することも、
Cluster-Baremetal-Operatorを使用して自動化することもできます。各ホストが起動すると、エージェントプロセスが実行され、ホストの詳細が検出され、インストールが完了します。Agentカスタムリソースは、各ホストを表します。 - エージェントプラットフォームでホステッドクラスターを作成すると、HyperShift は Hosted Control Plane (HCP) namespace に Agent Cluster API プロバイダーをインストールします。
- ノードプールをスケールアップすると、マシンが作成されます。Cluster API プロバイダーは、承認され、検証に合格し、現在使用されておらず、ノードプールの仕様で指定されている要件を満たすエージェントを見つけます。エージェントのステータスと状態を確認することで、エージェントのインストールを監視できます。
ノードプールをスケールダウンすると、エージェントは対応するクラスターからバインド解除されます。クラスターを再利用する前に、検出イメージを使用してクラスターを再起動し、ノード数を更新する必要があります。
1.7.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホスティングクラスターを設定するには、次の前提条件を満たす必要があります。
- OpenShift Container Platform クラスターにインストールされた Kubernetes Operator 2.2 以降のマルチクラスターエンジンが必要です。マルチクラスターエンジン Operator は、Red Hat Advanced Cluster Management をインストールすると自動的にインストールされます。OpenShift Container Platform OperatorHub から Operator として Red Hat Advanced Cluster Management を使用せずに、マルチクラスターエンジン Operator をインストールすることもできます。
マルチクラスターエンジン Operator には、1 つ以上の OpenShift Container Platform マネージドクラスターが必要です。
local-clusterは、マルチクラスターエンジン Operator 2.2 以降で自動的にインポートされます。local-clusterの詳細については、詳細設定 を参照してください。次のコマンドを実行して、ハブクラスターの状態を確認できます。oc get managedclusters local-cluster
oc get managedclusters local-clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow - HyperShift Operator を実行するには、3 つ以上のワーカーノードを含むホスティングクラスターが必要です。
- ホストされたコントロールプレーン機能を有効にする必要があります。詳細は、ホストされたコントロールプレーン機能の有効化 を参照してください。
1.7.3.2. DNS の設定 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターの API サーバーは、NodePort サービスとして公開されます。API サーバーに到達できる宛先を指す api.${HOSTED_CLUSTER_NAME}.${BASEDOMAIN} に、DNS エントリーが存在する必要があります。
DNS エントリーは、Hosted Control Plane を実行しているマネージドクラスター内のノードの 1 つを指すレコードと同様、単純化できます。エントリーは、受信トラフィックを Ingress Pod にリダイレクトするためにデプロイされるロードバランサーを指すこともできます。
次の DNS 設定の例を参照してください。
1.7.3.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Central Infrastructure Management サービスの概要は、Kube API - Getting Started Guide を参照してください。
- ロードバランサーの詳細については ユーザーによってプロビジョニングされるインフラストラクチャーの負荷分散要件 を参照してください。
- SR-IOV Operator をデプロイできるようになりました。SR-IOV Operator のデプロイに関する詳細は、ホステッドコントロールプレーン用の SR-IOV Operator のデプロイ を参照してください。
1.7.4. ベアメタルでのホステッドコントロールプレーンクラスターの管理 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Operator コンソール用のマルチクラスターエンジンを使用して、Red Hat OpenShift Container Platform のホステッドクラスターを作成および管理できます。ホステッドコントロールプレーンは、Amazon Web Services (AWS) およびベアメタルでテクノロジープレビューとして利用できます。
1.7.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーンクラスターを作成する前に、ベアメタル用のホステッドコントロールプレーンを設定する必要があります。詳細については、ベアメタルでのホスティングクラスターの設定 (テクノロジープレビュー) を参照してください。
1.7.4.2. コンソールを使用してベアメタルエージェント上にホストされたコントロールプレーンクラスターを作成する リンクのコピーリンクがクリップボードにコピーされました!
マルチクラスターエンジン Operator コンソールからホステッドコントロールプレーンクラスターを作成するには、Infrastructure > Clusters に移動します。Clusters ページで、Create cluster > Host Inventory > Hosted control plane をクリックし、コンソールで手順を完了します。
重要: クラスターを作成すると、マルチクラスターエンジン Operator コントローラーは、クラスターとそのリソースのための名前空間を作成します。その namespace には、そのクラスターインスタンスのリソースのみを含めるようにしてください。クラスターを破棄すると、namespace とその中のすべてのリソースが削除されます。
クラスターを既存のクラスターセットに追加する場合は、そのクラスターセットで追加できる適切なパーミッションが必要です。クラスターの作成時に cluster-admin 権限がない場合に、clusterset-admin 権限があるクラスターセットを選択する必要があります。指定されたクラスターセットに対して適切なパーミッションがないと、クラスターの作成に失敗します。選択するクラスターセットオプションがない場合には、クラスター管理者に連絡して、clusterset-admin 権限を受け取ってください。
マネージドクラスターはすべて、マネージドクラスターセットに関連付けられている必要があります。マネージドクラスターを ManagedClusterSet に割り当てない場合は、デフォルト のマネージドクラスターセットに自動的に追加されます。
このリリースイメージで、クラスターの作成に使用される OpenShift Container Platform イメージのバージョンを特定します。ホステッドコントロールプレーンクラスターは、提供されたリリースイメージのいずれかを使用する必要があります。
インフラストラクチャー環境で提供されるプロキシー情報は、プロキシーフィールドに自動的に追加されます。既存の情報を使用することも、それを上書きすることも、プロキシーを有効にする場合に情報を追加することもできます。次のリストには、プロキシーの作成に必要な情報が含まれています。
-
HTTP プロキシー URL:
HTTPトラフィックのプロキシーとして使用する URL。 -
HTTPS プロキシー URL:
HTTPSトラフィックに使用するセキュアなプロキシー URL。値の指定がない場合は、HTTP Proxy URLと同じ値がHTTPおよびHTTPSの両方に使用されます。 -
プロキシードメインなし: プロキシーをバイパスする必要のあるドメインのコンマ区切りリスト。ドメイン名をピリオド (
.) で開始し、そのドメインにあるすべてのサブドメインを組み込みます。アステリスク (*) を追加し、すべての宛先のプロキシーをバイパスします。 - 追加のトランスとバンドル: ミラーレジストリーへのアクセスに必要な証明書ファイルのコンテンツ。
注記: クラスターのインポートには、クラスターの詳細で提示された oc コマンドを実行する必要があります。クラスターを作成すると、Red Hat Advanced Cluster Management で管理されるように自動的に設定されません。
1.7.4.3. コマンドラインを使用してベアメタル上にホストされたクラスターを作成する リンクのコピーリンクがクリップボードにコピーされました!
クラスターにデフォルトのストレージクラスが設定されていることを確認します。設定されていない場合は、PVC が保留になる可能性があります。
次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow しばらくしてから、次のコマンドを入力して、ホストされたコントロールプレーン Pod が稼働中であることを確認します。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get podsoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4.4. InfraEnv の作成 リンクのコピーリンクがクリップボードにコピーされました!
InfraEnv は、ライブ ISO を開始しているホストがエージェントとして参加できる環境です。この場合、エージェントはホステッドコントロールプレーンと同じ名前空間に作成されます。
InfraEnvを作成するには、次のコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 仮想マシンまたはベアメタルマシンがエージェントとして参加できるようにするライブ ISO を生成するには、次のコマンドを入力します。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get InfraEnv ${HOSTED_CLUSTER_NAME} -ojsonpath="{.status.isoDownloadURL}"oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get InfraEnv ${HOSTED_CLUSTER_NAME} -ojsonpath="{.status.isoDownloadURL}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4.5. エージェントの追加 リンクのコピーリンクがクリップボードにコピーされました!
エージェントを追加するには、手動でマシンを設定してライブ ISO で開始するか、Metal3 を使用します。
エージェントを手動で追加するには、次の手順に従います。
-
ライブ ISO をダウンロードし、それを使用してノード (ベアメタルまたは VM) を起動します。起動時に、ノードは Assisted Service と通信し、
InfraEnvと同じ名前空間にエージェントとして登録します。 各エージェントが作成された後、オプションでその
installation_disk_idとhostnameを仕様に設定することができます。次に、エージェントを使用する準備ができていることを示すためにこれを承認します。oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentsoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 auto-assign e57a637f-745b-496e-971d-1abbf03341ba auto-assign
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 auto-assign e57a637f-745b-496e-971d-1abbf03341ba auto-assignCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 86f7ac75-4fc4-4b36-8130-40fa12602218 -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-0.example.krnl.es"}}' --type merge oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 23d0c614-2caa-43f5-b7d3-0b3564688baa -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-1.example.krnl.es"}}' --type mergeoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 86f7ac75-4fc4-4b36-8130-40fa12602218 -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-0.example.krnl.es"}}' --type merge oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 23d0c614-2caa-43f5-b7d3-0b3564688baa -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-1.example.krnl.es"}}' --type mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentsoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 true auto-assign e57a637f-745b-496e-971d-1abbf03341ba true auto-assign
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 true auto-assign e57a637f-745b-496e-971d-1abbf03341ba true auto-assignCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
ライブ ISO をダウンロードし、それを使用してノード (ベアメタルまたは VM) を起動します。起動時に、ノードは Assisted Service と通信し、
Metal3 を使用してエージェントを追加するには、次の手順に従います。
Assisted Service を使用してカスタム ISO を作成し、Baremetal Operator を使用してインストールを実行します。
重要:
BaremetalHostオブジェクトは、baremetal-operator 名前空間の外部に作成されるため、すべての名前空間を監視するように Operator を設定する必要があります。oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow metal3Pod がopenshift-machine-api名前空間で再起動されます。metal3Pod の準備が再び整うまで待ちます。until oc wait -n openshift-machine-api $(oc get pods -n openshift-machine-api -l baremetal.openshift.io/cluster-baremetal-operator=metal3-state -o name) --for condition=containersready --timeout 10s >/dev/null 2>&1 ; do sleep 1 ; done
until oc wait -n openshift-machine-api $(oc get pods -n openshift-machine-api -l baremetal.openshift.io/cluster-baremetal-operator=metal3-state -o name) --for condition=containersready --timeout 10s >/dev/null 2>&1 ; do sleep 1 ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow BaremetalHost オブジェクトを作成します。ベアメタルノードを起動するために必要ないくつかの変数を設定する必要があります。
-
BMC_USERNAME: BMC に接続するためのユーザー名。 -
BMC_PASSWORD: BMC に接続するためのパスワード。 -
BMC_IP: Metal3 が BMC に接続するために使用する IP。 -
WORKER_NAME: BaremetalHost オブジェクトの名前 (この値はホスト名としても使用されます) -
BOOT_MAC_ADDRESS: MachineNetwork に接続されている NIC の MAC アドレス。 -
UUID: Redfish UUID (通常は1)。suhy-tools を使用している場合は、この値は長い UUID になります。iDrac を使用している場合は、この値はSystem.Embedded.1になります。ベンダーに確認することを推奨します。 -
REDFISH_SCHEME: 使用する Redfish プロバイダー。標準の Redfish 実装を使用するハードウェアを使用している場合、この値をredfish-virtualmediaに設定できます。iDRAC はidrac-virtualmediaを使用します。iLO5 はilo5-virtualmediaを使用します。ベンダーに確認することを推奨します。 REDFISH: Redfish 接続エンドポイント。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
次の手順に従って BaremetalHost を作成します。
BMC シークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BMH を作成します。
注記:
infraenvs.agent-install.openshift.ioラベルは、BMH の開始に使用されるInfraEnvを指定するために使用されます。bmac.agent-install.openshift.io/hostnameラベルは、ホスト名を手動で設定するために使用されます。インストールディスクを手動で指定する場合は、BMH 仕様の
rootDeviceHintsを使用できます。rootDeviceHintsが提供されていない場合、エージェントは、インストール要件により適したインストールディスクを選択します。rootDeviceHints の詳細は、BareMetalHost ドキュメントの rootDeviceHints セクションを参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow エージェントは自動的に承認されます。承認されない場合は、
bootMACAddressが正しいことを確認してください。BMH がプロビジョニングされます。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmhoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmhCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioning true 2m50s
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioning true 2m50sCopy to Clipboard Copied! Toggle word wrap Toggle overflow BMH は最終的に
provisioned状態に達します。oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmhoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmhCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioned true 72s
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioned true 72sCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロビジョニング済み とは、ノードが virtualCD から正しく起動するように設定されたことを意味します。エージェントが表示されるまで少し時間がかかります。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assign
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assignCopy to Clipboard Copied! Toggle word wrap Toggle overflow エージェントは自動的に承認されます。
他の 2 つのノードでこのプロセスを繰り返します。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assign d9198891-39f4-4930-a679-65fb142b108b true auto-assign da503cf1-a347-44f2-875c-4960ddb04091 true auto-assign
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assign d9198891-39f4-4930-a679-65fb142b108b true auto-assign da503cf1-a347-44f2-875c-4960ddb04091 true auto-assignCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4.6. ホステッドクラスターへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーンが実行されており、エージェントはホステッドクラスターに参加する準備ができています。エージェントがホステッドクラスターに参加する前に、ホステッドクラスターにアクセスする必要があります。
次のコマンドを入力して、kubeconfig を生成します。
hypershift create kubeconfig --namespace ${CLUSTERS_NAMESPACE} --name ${HOSTED_CLUSTER_NAME} > ${HOSTED_CLUSTER_NAME}.kubeconfighypershift create kubeconfig --namespace ${CLUSTERS_NAMESPACE} --name ${HOSTED_CLUSTER_NAME} > ${HOSTED_CLUSTER_NAME}.kubeconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターにアクセスすると、ノードがなく、ClusterVersion が Red Hat OpenShift Container Platform リリースを調整しようとしていることがわかります。
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get clusterversion,nodesoc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get clusterversion,nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS clusterversion.config.openshift.io/version False True 8m6s Unable to apply 4.12z: some cluster operators have not yet rolled out
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS clusterversion.config.openshift.io/version False True 8m6s Unable to apply 4.12z: some cluster operators have not yet rolled outCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターを実行するには、クラスターにノードを追加する必要があります。
1.7.4.7. NodePool オブジェクトのスケーリング リンクのコピーリンクがクリップボードにコピーされました!
NodePool オブジェクトをスケーリングして、ホステッドクラスターにノードを追加します。
NodePool オブジェクトを 2 つのノードにスケーリングします。
oc -n ${CLUSTERS_NAMESPACE} scale nodepool ${NODEPOOL_NAME} --replicas 2oc -n ${CLUSTERS_NAMESPACE} scale nodepool ${NODEPOOL_NAME} --replicas 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterAPI Agent プロバイダーは、ホステッドクラスターに割り当てられる 2 つのエージェントをランダムに選択します。これらのエージェントはさまざまな状態を経て、最終的に OpenShift Container Platform ノードとしてホステッドクラスターに参加します。状態は、
bindingからdiscovering、insufficient、installing、installing-in-progress、added-to-existing-clusterへと推移します。oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow エージェントが
added-to-existing-cluster状態になったら、OpenShift Container Platform ノードが表示されることを確認します。oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodesoc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 5m41s v1.24.0+3882f8f ocp-worker-2 Ready worker 6m3s v1.24.0+3882f8f
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 5m41s v1.24.0+3882f8f ocp-worker-2 Ready worker 6m3s v1.24.0+3882f8fCopy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterOperators は、ワークロードをノードに追加することによって調整を開始します。
NodePoolオブジェクトをスケールアップしたときに、2 つのマシンが作成されたことも確認できます。oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get machinesoc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get machinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION hypercluster1-c96b6f675-m5vch hypercluster1-b2qhl ocp-worker-1 agent://da503cf1-a347-44f2-875c-4960ddb04091 Running 15m 4.12z hypercluster1-c96b6f675-tl42p hypercluster1-b2qhl ocp-worker-2 agent://4dac1ab2-7dd5-4894-a220-6a3473b67ee6 Running 15m 4.12z
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION hypercluster1-c96b6f675-m5vch hypercluster1-b2qhl ocp-worker-1 agent://da503cf1-a347-44f2-875c-4960ddb04091 Running 15m 4.12z hypercluster1-c96b6f675-tl42p hypercluster1-b2qhl ocp-worker-2 agent://4dac1ab2-7dd5-4894-a220-6a3473b67ee6 Running 15m 4.12zCopy to Clipboard Copied! Toggle word wrap Toggle overflow clusterversion調整は最終的に、Ingress および Console クラスター Operator のみが欠落しているポイントに到達します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4.8. Ingress の処理 リンクのコピーリンクがクリップボードにコピーされました!
すべての OpenShift Container Platform クラスターには、外部 DNS レコードが関連付けられていると想定されるデフォルトのアプリケーション Ingress コントローラーがセットアップされています。たとえば、ベースドメイン krnl.es で example という名前の HyperShift クラスターを作成する場合は、ワイルドカードドメイン *.apps.example.krnl.es がルーティング可能であると予想することができます。
*.apps のロードバランサーとワイルドカード DNS レコードをセットアップできます。このプロセスでは、MetalLB をデプロイし、Ingress デプロイメントにルーティングする新しいロードバランサーサービスを設定し、ワイルドカード DNS エントリーをロードバランサー IP アドレスに割り当てる必要があります。
LoadBalancer タイプのサービスを作成するときに、MetalLB がサービスの外部 IP アドレスを追加するように、
MetalLBをセットアップします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator の実行後、MetalLB インスタンスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 単一の IP アドレスで
IPAddressPoolを作成して、MetalLB Operator を設定します。この IP アドレスは、クラスターノードが使用するネットワークと同じサブネット上にある必要があります。重要: 環境のアドレスと一致するように
INGRESS_IP環境変数を変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の手順に従って、MetalLB を介して OpenShift Container Platform ルーターを公開します。
Ingress トラフィックを Ingress デプロイメントにルーティングする LoadBalancer Service をセットアップします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、OpenShift Container Platform コンソールにアクセスします。
curl -kI https://console-openshift-console.apps.example.krnl.es HTTP/1.1 200 OK
curl -kI https://console-openshift-console.apps.example.krnl.es HTTP/1.1 200 OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow clusterversionとclusteroperatorの値をチェックして、すべてが実行されていることを確認します。以下のコマンドを入力します。oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get clusterversion,cooc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get clusterversion,coCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4.9. ホステッドクラスターのノード自動スケーリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターにさらに容量が必要で、予備のエージェントが利用可能な場合は、自動スケーリングを有効にして新しいエージェントをインストールできます。
自動スケーリングを有効にするには、次のコマンドを入力します。この場合、ノードの最小数は 2 で、最大数は 5 です。
oc -n ${CLUSTERS_NAMESPACE} patch nodepool ${HOSTED_CLUSTER_NAME} --type=json -p '[{"op": "remove", "path": "/spec/replicas"},{"op":"add", "path": "/spec/autoScaling", "value": { "max": 5, "min": 2 }}]'oc -n ${CLUSTERS_NAMESPACE} patch nodepool ${HOSTED_CLUSTER_NAME} --type=json -p '[{"op": "remove", "path": "/spec/replicas"},{"op":"add", "path": "/spec/autoScaling", "value": { "max": 5, "min": 2 }}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 追加のキャパシティーを必要とせずに 10 分が経過すると、エージェントは廃止され、スペアキューに再び配置されます。
新しいノードを必要とするワークロードを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、残りのエージェントがデプロイされていることを確認します。この例では、スペアエージェント
d9198891-39f4-4930-a679-65fb142b108bがプロビジョニングされます。oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}'oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: installing-in-progress BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-cluster
BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: installing-in-progress BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力してノードを確認すると、新しいノードが出力に表示されます。この例では、
ocp-worker-0がクラスターに追加されています。oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodesoc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION ocp-worker-0 Ready worker 35s v1.24.0+3882f8f ocp-worker-1 Ready worker 40m v1.24.0+3882f8f ocp-worker-2 Ready worker 41m v1.24.0+3882f8f
NAME STATUS ROLES AGE VERSION ocp-worker-0 Ready worker 35s v1.24.0+3882f8f ocp-worker-1 Ready worker 40m v1.24.0+3882f8f ocp-worker-2 Ready worker 41m v1.24.0+3882f8fCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードを削除するには、次のコマンドを入力してワークロードを削除します。
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig -n default delete deployment reversewordsoc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig -n default delete deployment reversewordsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 10 分間待機し、次のコマンドを入力してノードが削除されたことを確認します。
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodesoc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 51m v1.24.0+3882f8f ocp-worker-2 Ready worker 52m v1.24.0+3882f8f
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 51m v1.24.0+3882f8f ocp-worker-2 Ready worker 52m v1.24.0+3882f8fCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}' BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: known-unbound BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-clusteroc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}' BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: known-unbound BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4.10. ホステッドクラスター作成の確認 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントプロセスが完了したら、ホステッドクラスターが正常に作成されたことを確認できます。ホステッドクラスターの作成から数分後に、次の手順に従います。
次の extract コマンドを入力して、新しいホステッドクラスターの kubeconfig を取得します。
oc extract -n kni21 secret/kni21-admin-kubeconfig --to=- > kubeconfig-kni21 # kubeconfig
oc extract -n kni21 secret/kni21-admin-kubeconfig --to=- > kubeconfig-kni21 # kubeconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow kubeconfig を使用して、ホステッドクラスターのクラスター Operator を表示します。以下のコマンドを入力します。
oc get co --kubeconfig=kubeconfig-kni21
oc get co --kubeconfig=kubeconfig-kni21Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ホストされたクラスター上で実行中の Pod を表示することもできます。
oc get pods -A --kubeconfig=kubeconfig-kni21
oc get pods -A --kubeconfig=kubeconfig-kni21Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4.11. ベアメタルでのホステッドクラスターの破棄 リンクのコピーリンクがクリップボードにコピーされました!
コンソールを使用して、ベアメタルホステッドクラスターを破棄できます。ベアメタル上のホステッドクラスターを破壊するには、次の手順を実行します。
- コンソールで、Infrastructure > Clusters に移動します。
- Clusters ページで、破棄するクラスターを選択します。
- Actions メニューで Destroy clusters を選択し、クラスターを削除します。
1.7.4.12. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- MetalLB の詳細は、OpenShift Container Platform ドキュメントの MetalLB および MetalLB Operator について を参照してください。
-
rootDeviceHintsの詳細は、BareMetalHost ドキュメントの rootDeviceHints セクションを参照してください。
1.7.5. ホステッドコントロールプレーン機能の無効化 リンクのコピーリンクがクリップボードにコピーされました!
HyperShift Operator をアンインストールして、Hosted Control Plane を無効にすることができます。ホステッドコントロールプレーンクラスター機能を無効にする場合は、ホステッドコントロールプレーンクラスターの管理 トピックで説明されているとおり、マルチクラスターエンジン Operator でホステッドクラスターとマネージドクラスターリソースを破棄する必要があります。
1.7.5.1. HyperShift Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
HyperShift Operator をアンインストールし、local-cluster から hypershift-addon を無効にするには、以下の手順を実行します。
以下のコマンドを実行して、ホステッドクラスターが実行されていないことを確認します。
oc get hostedcluster -A
oc get hostedcluster -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要: ホステッドクラスターが実行されている場合、
hypershift-addonが無効になっていても、HyperShift Operator はアンインストールされません。以下のコマンドを実行して
hypershift-addonを無効にします。oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-local-hosting","enabled": false}]}}}'oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-local-hosting","enabled": false}]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒント:
hypershift-addonを無効にした後、マルチクラスターエンジン Operator コンソールからlocal-clusterのhypershift-addonを無効にすることもできます。
1.7.5.2. ホステッドコントロールプレーン機能の無効化 リンクのコピーリンクがクリップボードにコピーされました!
Hosted Control Plane 機能を無効にする前に、まず HyperShift Operator をアンインストールする必要があります。次のコマンドを実行して、ホステッドコントロールプレーン機能を無効にします。
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": false}]}}}'
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": false}]}}}'
次のコマンドを実行すると、MultiClusterEngine カスタムリソースで hypershift-preview および hypershift-local-hosting 機能が無効になっていることを確認できます。
oc get mce multiclusterengine -o yaml
oc get mce multiclusterengine -o yaml
hypershift-preview と hypershift-local-hosting の enabled: フラグが false に設定されている次の例を参照してください。