1.17. ホストされたコントロールプレーンクラスターの使用 (テクノロジープレビュー)
multicluster engine operator 2.0 を使用する Red Hat Advanced Cluster Management for Kubernetes バージョン 2.5 は、2 つの異なるコントロールプレーン設定を使用して Red Hat OpenShift Container Platform クラスターをデプロイできます。スタンドアロン設定では、複数の専用仮想マシンまたは物理マシンを使用して、OpenShift Container Platform コントロールプレーンをホストします。ホストされたコントロールプレーンをプロビジョニングして、OpenShift Container Platform コントロールプレーンをホスティングサービスクラスター上の Pod としてプロビジョニングできます。コントロールプレーンごとに専用の物理マシンは必要ありません。
注記: この機能は、Red Hat Advanced Cluster Management for Kubernetes を使用しない multicluster engine operator 2.0 でも機能します。
Red Hat Advanced Cluster Management では、Amazon Web Services がテクノロジープレビューとしてサポートされています。Red Hat OpenShift Container Platform バージョン 4.10.7 のコントロールプレーンをホストできます。
コントロールプレーンは、単一の名前空間に含まれる Pod として実行され、ホストされたコントロールプレーンクラスターに関連付けられます。OpenShift Container Platform がこのタイプのホストされたクラスターをプロビジョニングする場合、コントロールプレーンから独立したワーカーノードをプロビジョニングします。
以下は、ホストされたコントロールプレーンクラスターの利点です。
- 専用コントロールプレーンノードをホストする必要がなくなるため、コストを節約できます。
- コントロールプレーンとワークロードを分離することで、分離が改善され、変更が必要になる設定エラーが減少します。
- コントロールプレーンノードのブートストラップが不要になるため、クラスターのプロビジョニング時間が大幅に短縮されます。
- ターンキーデプロイメントまたは完全にカスタマイズされた OpenShift Container Platform プロビジョニングをサポートします。
ホストされたコントロールプレーンの使用について、詳しくは次の製品ドキュメントを参照してください。
1.17.1. ホストされているコントロールプレーンの設定 リンクのコピーリンクがクリップボードにコピーされました!
ホストされているコントロールプレーンを設定するには、ホスティングサービスクラスターとホストされているクラスターが必要です。HyperShift Operator を既存のクラスターにデプロイすることで、そのクラスターをホスティングサービスクラスターにし、ホストされるクラスターの作成を開始できます。
ホストされたコントロールプレーンはテクノロジープレビュー機能であるため、関連コンポーネントはデフォルトで無効になっています。multiclusterengine カスタムリソースを編集して spec.overrides.components[?(@.name=='hypershift-preview')].enabled を true に設定して、この機能を有効にします。
以下のコマンドを実行して、ホストされるコントロールプレーン機能が有効であることを確認します。
oc patch mce multiclusterengine-sample--type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": true}]}}}'
oc patch mce multiclusterengine-sample--type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": true}]}}}'
1.17.1.1. ホスティングサービスクラスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
既存クラスターをホスティングサービスクラスターとして機能するように設定することで、ホストされたコントロールプレーンをデプロイできます。ホスティングサービスクラスターは、コントロールプレーンがホストされる OpenShift Container Platform クラスターであり、ハブクラスターまたは OpenShift Container Platform 管理対象クラスターの 1 つにできます。
1.17.1.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホスティングサービスクラスターを設定するには、次の前提条件を満たす必要があります。
- Red Hat OpenShift Container Platform で管理される 1 つ以上のクラスターに multicluster engine operator がインストールされている必要があります。multicluster engine operator は、Red Hat Advanced Cluster Management バージョン 2.5 以降をインストールすると自動的にインストールされ、Red Hat Advanced Cluster Management なしで OpenShift Container Platform OperatorHub から Operator としてインストールすることもできます。
Red Hat Advanced Cluster Management ハブクラスターをホスティングサービスクラスターにする場合は、以下の手順を実行して、
local-clusterをホスティングサービスクラスターとして設定する必要があります。次の例のような
import-hub.yamlという名前の YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のように入力して、ファイルを適用します。
oc apply -f import-hub.yaml
oc apply -f import-hub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
自己管理されるハブクラスターは、クラスターの一覧で
local-clusterとして指定されます。
1.17.1.1.2. ホスティングサービスクラスター の設定 リンクのコピーリンクがクリップボードにコピーされました!
multicluster engine operator がインストールされているクラスターで以下の手順を実行し、OpenShift Container Platform 管理対象クラスターをホスティングサービスクラスターとして有効にします。
AWS でホストされたクラスターを作成および管理する場合は、HyperShift Operator 用に
hypershift- operator -oidc-provider-s3-credentialsという名前の OIDC S3 認証情報シークレットを作成します。管理対象クラスターの名前空間にシークレットを保存します。これは、ホスティングサービスクラスターとして使用される管理対象クラスターの名前空間です。local-clusterを使用した場合は、local-cluster名前空間にシークレットを作成しますシークレットには以下の 3 つのフィールドを含める必要があります。
bucketフィールドには、HyperShift クラスターの OIDC 検出ドキュメントをホストするためのパブリックアクセスを持つ S3 バケットが含まれています。credentialsフィールドは、バケットにアクセスできるdefaultプロファイルの認証情報を含むファイルへの参照です。デフォルトでは、HyperShift はdefaultプロファイルのみを使用してバケットを操作します。regionフィールドは、S3 バケットのリージョンを指定します。シークレットの詳細は、HyperShift のドキュメント の Getting started を参照してください。次の例は、サンプルの 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 <hypershift-hosting-service-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 <hypershift-hosting-service-cluster>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: シークレットのリカバリーバックアップは自動的に有効になりません。以下のコマンドを実行して、障害復旧用に
hypershift-operator-oidc-provider-s3-credentialsシークレットのバックアップを有効にするラベルを追加します。oc label secret hypershift-operator-oidc-provider-s3-credentials -n <hypershift-hosting-service-cluster> cluster.open-cluster-management.io/backup=""
oc label secret hypershift-operator-oidc-provider-s3-credentials -n <hypershift-hosting-service-cluster> cluster.open-cluster-management.io/backup=""Copy to Clipboard Copied! Toggle word wrap Toggle overflow HyperShift アドオンをインストールします。
HyperShift Operator をホストするクラスターは、ホストサービスクラスターです。この手順では、
hypershift-addonを使用して、マネージドクラスターに HyperShift Operator をインストールします。以下の例のようなファイルを作成して、
ManagedClusterAddonHyperShift アドオンを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow managed-cluster-nameを、HyperShift Operator をインストールする管理対象クラスターの名前に置き換えます。Red Hat Advanced Cluster Management ハブクラスターにインストールする場合は、この値にlocal-clusterを使用します。以下のコマンドを実行してこのファイルを適用します。
oc apply -f <filename>
oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow filenameは、作成したファイル名に置き換えます。
以下のコマンドを実行して、
hypershift-addonがインストールされていることを確認します。oc get managedclusteraddons -n <hypershift-hosting-service-cluster> hypershift-addon
oc get managedclusteraddons -n <hypershift-hosting-service-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.17.1.2. ホストされたクラスターのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
HyperShift Operator をインストールして既存クラスターをホストサービスクラスターとして有効にすると、HypershiftDeployment カスタムリソースを作成して HyperShift ホストクラスターをプロビジョニングできます。
コンソールまたはファイルの追加を使用して、認証情報としてクラウドプロバイダーシークレットを作成します。VPC、サブネット、NAT ゲートウェイなどのクラスターのインフラストラクチャーリソースを作成するパーミッションが必要です。このアカウントは、ワーカーが置かれるゲストクラスターのアカウントに対応している必要があります。必要なパーミッションに関する詳細は、HyperShift ドキュメントの AWS インフラストラクチャーおよび IAM リソースの作成 を参照してください。
次の例は、AWS の形式を示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コンソールでこのシークレットを作成するには、ナビゲーションメニューの Credentials にアクセスし、認証情報の作成手順に従います。
コマンドラインを使用してシークレットを作成するには、以下のコマンドを実行します。
oc create secret generic <my-secret> -n <hypershift-deployment-namespace> --from-literal=baseDomain='your.domain.com' --from-literal=aws_access_key_id='your-aws-access-key' --from-literal=aws_secret_access_key='your-aws-secret-key' --from-literal=pullSecret='your-quay-pull-secret' --from-literal=ssh-publickey='your-ssh-publickey' --from-literal=ssh-privatekey='your-ssh-privatekey'
oc create secret generic <my-secret> -n <hypershift-deployment-namespace> --from-literal=baseDomain='your.domain.com' --from-literal=aws_access_key_id='your-aws-access-key' --from-literal=aws_secret_access_key='your-aws-secret-key' --from-literal=pullSecret='your-quay-pull-secret' --from-literal=ssh-publickey='your-ssh-publickey' --from-literal=ssh-privatekey='your-ssh-privatekey'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: シークレットのリカバリーバックアップは自動的に有効になりません。以下のコマンドを実行して、障害復旧用にシークレットのバックアップを可能にするラベルを追加します。
oc label secret <my-secret> -n <hypershift-deployment-namespace> cluster.open-cluster-management.io/backup=""
oc label secret <my-secret> -n <hypershift-deployment-namespace> cluster.open-cluster-management.io/backup=""Copy to Clipboard Copied! Toggle word wrap Toggle overflow
HypershiftDeploymentカスタムリソースファイルをクラウドプロバイダーのシークレット namespace に作成します。HypershiftDeploymentカスタムリソースは、プロバイダーアカウントにインフラストラクチャーを作成し、作成されたインフラストラクチャーでインフラストラクチャーコンピュート容量を設定し、ホストされるコントロールプレーンを使用するnodePoolsをプロビジョニングし、ホスティングサービスクラスターに、ホストされたコントロールプレーンを作成します。以下の例のような情報が含まれるファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow clusterは、クラスターの名前に置き換えます。hosting-service-clusterは、HyperShift Operator をホストするクラスター名に置き換えます。my-secretは、クラウドプロバイダーにアクセスするためのシークレットに置き換えます。regionは、クラウドプロバイダーのリージョンに置き換えます。以下のコマンドを入力してファイルを適用します。
oc apply -f <filename>
oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow API の フィールド定義 を参照して、それらが正しいことを確認します。
以下のコマンドを実行して
HypershiftDeploymentのステータスを確認します。oc get hypershiftdeployment -n default hypershift-demo -w
oc get hypershiftdeployment -n default hypershift-demo -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow ホストされているクラスターが作成されると、自動的にハブにインポートされます。これを確認するには、Red Hat Advanced Cluster Management コンソールのクラスター一覧を確認するか、以下のコマンドを実行します。
oc get managedcluster <hypershiftDeployment.Spec.infraID>
oc get managedcluster <hypershiftDeployment.Spec.infraID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.17.1.3. ホストサービスクラスターへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
これで、クラスターにアクセスできます。アクセスシークレットは hypershift-hosting-service-cluster namespace に保存されます。この namespace は、ホストサービスクラスターの名前と同じです。次の形式のシークレット名形式について学習します。
-
kubeconfigシークレット:<hypershiftDeployment.Spec.hostingNamespace>-<hypershiftDeployment.Name>-admin-kubeconfig(clusters-hypershift-demo-admin-kubeconfig) -
kubeadminパスワードシークレット:<hypershiftDeployment.Spec.hostingNamespace>-<hypershiftDeployment.Name>-kubeadmin-password(clusters-hypershift-demo-kubeadmin-password)
1.17.2. ホストされているコントロールプレーンリソースの無効化 リンクのコピーリンクがクリップボードにコピーされました!
ホストされているコントロールプレーンクラスター機能を無効にする場合は、HyperShift ホステッドクラスターを破棄し、HyperShift Operator をアンインストールする必要があります。
1.17.2.1. HyperShift がホストするクラスターの破棄 リンクのコピーリンクがクリップボードにコピーされました!
HyperShift がホストするクラスターを破棄するには、次のコマンドのいずれかを実行して、HypershiftDeployment リソースを削除します。
oc delete -f <HypershiftDeployment_yaml_file_name>
oc delete -f <HypershiftDeployment_yaml_file_name>
または
oc delete hd -n <HypershiftDeployment_namespace> <HypershiftDeployment_resource_name>
oc delete hd -n <HypershiftDeployment_namespace> <HypershiftDeployment_resource_name>
1.17.2.2. HyperShift Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
管理またはホスティングサービスクラスターから HyperShift Operator をアンインストールするには、次のコマンドを実行して、管理クラスターから hypershift-addon ManagedClusterAddon を削除します。
oc delete managedclusteraddon -n <hypershift-management-cluster> hypershift-addon
oc delete managedclusteraddon -n <hypershift-management-cluster> hypershift-addon