1.8. Discovery サービス
OpenShift Cluster Manager から利用可能な OpenShift Container Platform クラスターを検出できます。検出後に、クラスターをインポートして管理できます。Discovery サービスは、バックエンドおよびコンソールでの用途に Discover Operator を使用します。
OpenShift Cluster Manager 認証情報が必要になります。認証情報を作成する必要がある場合は、OpenShift Cluster Manager の認証情報の作成 を参照してください。
必要なアクセス権限: 管理者
1.8.1. サービスアカウントの認証 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Cluster Manager から利用可能な OpenShift Container Platform クラスターを検出するには、サービスアカウントで認証する必要があります。OpenShift Cluster Manager オフライントークンは非推奨であることに注意してください。
前提条件
- OpenShift Cluster Manager 認証情報が必要になります。認証情報を作成する必要がある場合は、OpenShift Cluster Manager の認証情報の作成 を参照してください。
- OpenShift Cluster Manager サービスアカウントの作成については、サービスアカウント を参照してください。
1.8.1.1. 認証 リンクのコピーリンクがクリップボードにコピーされました!
サービスアカウントで認証するには、次の手順を参照してください。
-
multicluster engine Operator コンソールで、サービスアカウントの
クライアント IDとクライアントシークレットのペアとして新しい認証情報シークレットを作成します。 -
multicluster engine Operator Discovery サービスが正しく認証を行い、クラスターを検出できるように、サービスアカウントの
クライアント IDとクライアントシークレットのペアを指定します。 -
マネージドクラスターとしてインポートするために、Red Hat OpenShift Service on AWS
DiscoveredClusterリソースを設定します。開始される Red Hat OpenShift Service on AWS インポートフローは、サービスアカウントの認証情報を使用してクラスターを認証およびインポートします。
| ロール | アクセス権限 |
|---|---|
| OpenShift Cluster Manager cluster autoscaler editor | クラスターオートスケーラーで更新操作を実行します。 |
| OpenShift Cluster Manager cluster editor | クラスターに対して更新操作を実行します。 |
| OpenShift Cluster Manager cluster provisioner | クラスターに対してプロビジョニング操作を実行します。 |
| OpenShift Cluster Manager cluster viewer | クラスターで読み取り操作を実行します。 |
| OpenShift Cluster Manager IdP editor | IdP で更新操作を実行します。 |
| OpenShift Cluster Manager machine pool editor | マシンプールに対して更新操作を実行します。 |
| OpenShift Cluster Manager organization administrator | 関連する組織のクラスターで利用可能なすべての操作を実行します。 |
| Subscriptions viewer | Subscriptions リソースで読み取り操作を実行します。 |
1.8.2. コンソールでの Discovery の設定 リンクのコピーリンクがクリップボードにコピーされました!
コンソールで Discovery を設定してクラスターを検索します。クラスターで Discovery 機能を設定する場合、組織内のクラスターの検出を開始するために、DiscoveryConfig リソースを有効にして OpenShift Cluster Manager に接続する必要があります。個別の認証情報を使用して複数の DiscoveryConfig リソースを作成できます。
クラスターの検出後に、コンソールの Discovered clusters に表示されるクラスターをインポートできます。製品のコンソールを使用して検出を有効にします。
必要なアクセス権: 認証情報が作成された namespace へのアクセス権。
前提条件
- 認証情報が必要です。OpenShift Cluster Manager に接続するには、OpenShift Cluster Manager の認証情報の作成 を参照してください。
- 検出の設定に使用した namespace へのアクセス権が必要である。
1.8.2.1. 検出されたクラスターのコンソールからのインポート リンクのコピーリンクがクリップボードにコピーされました!
他のインフラストラクチャープロバイダーによって検出されたクラスターを手動でインポートするには、次の手順を実行します。
- 既存の Clusters ページに移動し、Discovered clusters タブをクリックします。
- Discovered clusters の表から、インポートするクラスターを見つけます。
- オプションメニューから Import cluster を選択します。
- 検出クラスターの場合は、このドキュメントを使用して手動でインポートしたり、Import cluster を自動的に選択したりできます。
- 認証情報または Kubeconfig ファイルを使用して自動でインポートするには、コンテンツをコピーして貼り付けます。
- Import をクリックします。
1.8.2.2. 検出されたクラスターの表示 リンクのコピーリンクがクリップボードにコピーされました!
認証情報を設定してインポートするクラスターを検出した後に、コンソールで表示できます。
- Clusters > Discovered clusters の順にクリックします。
以下の情報が投入された表を確認してください。
- name は、OpenShift Cluster Manager で指定された表示名です。クラスターに表示名がない場合は、クラスターコンソール URL をもとに生成された名前が表示されます。OpenShift Cluster Manager でコンソール URL がない場合や手動で変更された場合には、クラスターの外部 ID が表示されます。
- Namespace は、認証情報および検出クラスターを作成した namespace です。
- type は検出されたクラスターの Red Hat OpenShift タイプです。
- Distribution version は、検出されたクラスターの Red Hat OpenShift バージョンです。
- Infrastructure provider は検出されたクラスターのクラウドプロバイダーです。
- Last active は、検出されたクラスターが最後にアクティブであった時間です。
- Created は検出クラスターが作成された時間です。
- Discovered は検出クラスターが検出された時間です。
- Cluster types は、OpenShift Container Platform や Red Hat OpenShift Service on AWS などのクラスターのプラットフォームタイプです。
- インフラストラクチャープロバイダー は、Amazon Web Services (AWS) や Microsoft Azure など、クラスターが実行されている場所によってフィルタリングします。
- 表の中にある情報はどれでも検索できます。たとえば、特定の namespace で Discovered clusters のみを表示するには、その namespace を検索します。
- Import cluster をクリックすると、マネージドクラスターを作成できます。
1.8.3. CLI を使用した Discovery の有効化 リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して Discovery を有効にし、OpenShift Cluster Manager から利用可能なクラスターを見つけます。
必要なアクセス権限: 管理者
前提条件
- OpenShift Cluster Manager に接続するための認証情報を作成する。
1.8.3.1. 検出の設定とプロセス リンクのコピーリンクがクリップボードにコピーされました!
注記: DiscoveryConfig は discovery という名前に指定し、選択した credential と同じ namespace に作成する必要があります。以下の DiscoveryConfig のサンプルを参照してください。
-
SECRET_NAMEは、以前に設定した認証情報に置き換えます。 -
NAMESPACE_NAMEはSECRET_NAMEの namespace に置き換えます。 -
クラスターの最後のアクティビティー (日数) からの最大時間を入力します。たとえば、
lastActive: 7では、過去 7 日間にアクティブなクラスターが検出されます。 -
検出する OpenShift Container Platform クラスターのバージョンを文字列のリスト形式で入力します。注記:
openshiftVersionsリストの各エントリーは、メジャーバージョンとマイナーバージョンを指定します。たとえば、4.xを指定すると、4.x.1、4.x.2などのすべてのエラータリリースが含まれます。
1.8.3.2. 検出されたクラスターの表示 リンクのコピーリンクがクリップボードにコピーされました!
検出されたクラスターを表示するには、oc get discoveredclusters -n <namespace> を実行して、namespace は検出認証情報が存在する namespace に置き換えます。
オブジェクトは Discovery コントローラーにより作成されます。このような DiscoveredClusters は、DiscoveryConfig discoveredclusters.discovery.open-cluster-management.io API で指定したフィルターと認証情報を使用して OpenShift Cluster Manager で検出されたクラスターを表します。name の値はクラスターの外部 ID です。
1.8.4. 検出されたクラスターを管理のために有効にする リンクのコピーリンクがクリップボードにコピーされました!
Discovery-Operator を使用して、個々のクラスターを手動でインポートすることなく、サポートされているクラスターをハブクラスターに自動的にインポートし、クラスター管理を迅速化します。
必要なアクセス権: クラスター管理者
前提条件
- Discovery がデフォルトで有効になっている。デフォルト設定を変更した場合は、Discovery を有効にする。
- Red Hat OpenShift Service on AWS コマンドラインインターフェイスを設定する。Red Hat OpenShift Service on AWS CLI ドキュメントの開始方法 を参照してください。
1.8.4.1. 検出された Red Hat OpenShift Service on AWS および Hosted Control Plane クラスターを自動的にインポートする リンクのコピーリンクがクリップボードにコピーされました!
次の手順は Discovery-Operator を使用して、検出された Red Hat OpenShift Service on AWS および Hosted Control Plane クラスターを自動的にインポートする方法の例です。コンソールまたはコマンドラインインターフェイスからインポートできます。
コンソールからインポートします。リソースを変更し、コンソールで
importAsManagedClusterフィールドをtrueに設定する必要があります。- コンソールからハブクラスターにログインします。
- ナビゲーションメニューから Search を選択します。
- 検索バーにクエリー "DiscoveredCluster" を入力します。
-
DiscoveredClusterリソースの結果が表示されます。 DiscoveredClusterリソースに移動し、importAsManagedClusterをtrueに設定します。次の例を参照してください。importAsManagedClusterはtrueに設定し、<4.x.z>はサポートされている OpenShift Container Platform のバージョンに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
DiscoveredClusterリソースがインポートされていることを確認するために、Clusters ページに移動します。Cluster list タブからクラスターのインポートステータスを確認します。 自動再インポートを防ぐために、Discovery のマネージドクラスターをデタッチする場合は、Detach cluster オプションを選択します。
Discovery-Operatorによって、アノテーションdiscovery.open-cluster-management.io/previously-auto-imported: 'true'が追加されます。DiscoveredClusterリソースは、次の YAML のようになります。apiVersion: discovery.open-cluster-management.io/v1 kind: DiscoveredCluster metadata: annotations: discovery.open-cluster-management.io/previously-auto-imported: 'true'apiVersion: discovery.open-cluster-management.io/v1 kind: DiscoveredCluster metadata: annotations: discovery.open-cluster-management.io/previously-auto-imported: 'true'Copy to Clipboard Copied! Toggle word wrap Toggle overflow DiscoveredClusterリソースが自動的に再インポートされないことを確認するために、Discovery-Operatorログで次のメッセージを確認します。"rosa-dc"は、検出されたクラスターです。2024-06-12T14:11:43.366Z INFO reconcile Skipped automatic import for DiscoveredCluster due to existing 'discovery.open-cluster-management.io/previously-auto-imported' annotation {"Name": "rosa-dc"}2024-06-12T14:11:43.366Z INFO reconcile Skipped automatic import for DiscoveredCluster due to existing 'discovery.open-cluster-management.io/previously-auto-imported' annotation {"Name": "rosa-dc"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注記:
DiscoveredClusterリソースを自動的に再インポートする場合は、前述のアノテーションを削除する必要があります。コマンドラインインターフェイスからインポートします。
コマンドラインインターフェイスから
DiscoveredClusterリソースを自動的にインポートします。ログイン後、次のコマンドを使用して、importAsManagedClusterパラメーターをtrueに設定します。<name>と<namespace>は、実際の名前と namespace に置き換えます。oc patch discoveredcluster <name> -n <namespace> --type='json' -p='[{"op": "replace", "path": "/spec/importAsManagedCluster", "value": true}]'oc patch discoveredcluster <name> -n <namespace> --type='json' -p='[{"op": "replace", "path": "/spec/importAsManagedCluster", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターがマネージドクラスターとしてインポートされたことを確認します。
oc get managedcluster <name>
oc get managedcluster <name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat OpenShift Service on AWS クラスター ID の説明を取得するには、Red Hat OpenShift Service on AWS コマンドラインインターフェイスから次のコマンドを実行します。
rosa describe cluster --cluster=<cluster-name> | grep -o ^ID:.*
rosa describe cluster --cluster=<cluster-name> | grep -o ^ID:.*Copy to Clipboard Copied! Toggle word wrap Toggle overflow
重要: 他の Kubernetes プロバイダーの場合は、これらのインフラストラクチャープロバイダーの DiscoveredCluster リソースを手動でインポートする必要があります。Kubernetes 設定を、他のタイプの DiscoveredCluster リソースに直接適用してください。DiscoveredCluster リソースから importAsManagedCluster フィールドを有効にしても、Discovery Webhook が原因でリソースがインポートされません。