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.yaml
Copy 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 をインストールします。以下の例のようなファイルを作成して、
ManagedClusterAddon
HyperShift アドオンを作成します。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-addon
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アドオンがインストールされている場合、出力は以下の例のようになります。
NAME AVAILABLE DEGRADED PROGRESSING hypershift-addon True
NAME AVAILABLE DEGRADED PROGRESSING hypershift-addon True
Copy 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 -w
Copy 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