1.8.4. クラスターのインポート
別の Kubernetes クラウドプロバイダーからクラスターをインポートできます。インポート後、ターゲットのクラスターが multicluster engine Operator ハブクラスターのマネージドクラスターになります。特に指定されていない限りは通常、ハブクラスターとターゲットのマネージドクラスターにアクセスできる場所で、インポートタスクを実行できます。
- ハブクラスターは 他 のハブクラスターの管理はできず、自己管理のみが可能です。ハブクラスターは、自動的にインポートして自己管理できるように設定されています。ハブクラスターは手動でインポートする必要はありません。
-
ハブクラスターを削除して再度インポートする場合は、
local-cluster:trueラベルをManagedClusterリソースに追加する必要があります。
重要: クラスターライフサイクルで、Cloud Native Computing Foundation (CNCF) Kubernetes Conformance Program を通じて認定されたすべてのプロバイダーがサポートされるようになりました。ハイブリッドクラウドマルチクラスター管理には、CNCF が認定したベンダーを選択してください。
CNCF プロバイダーの使用は、次の情報を参照してください。
- Certified Kubernetes Conformance で CNCF プロバイダーがどのように認定されるかを学びます。
- CNCF サードパーティープロバイダーに関する Red Hat サポート情報は、サードパーティーコンポーネントに関する Red Hat サポート を参照するか、Red Hat サポートへのお問い合わせ を参照してください。
-
独自の CNCF 適合認定クラスターを使用する場合は、OpenShift Container Platform CLI の
ocコマンドを Kubernetes CLI コマンドのkubectlに変更する必要があります。
クラスターを管理できるようにクラスターをインポートする方法の詳細は、次のトピックを参照してください。
必要なユーザータイプまたはアクセスレベル: クラスター管理者
1.8.4.1. コンソールを使用したマネージドクラスターのインポート リンクのコピーリンクがクリップボードにコピーされました!
multicluster engine for Kubernetes Operator をインストールしたら、クラスターをインポートして管理できるようになります。コンソールを使用してマネージドクラスターをインポートする方法は、以下を参照してください。
1.8.4.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- デプロイされたハブクラスター。ベアメタルクラスターをインポートする場合、サポートされている Red Hat OpenShift Container Platform バージョンにハブクラスターがインストールされている。
- 管理するクラスター。
-
base64コマンドラインツール。 -
OpenShift Container Platform によって作成されていないクラスターをインポートする場合、定義された
multiclusterhub.spec.imagePullSecret。このシークレットは、multicluster engine for Kubernetes Operator のインストール時に作成済みである可能性があります。このシークレットを定義する方法の詳細は、カスタムイメージプルシークレット を参照してください。 -
ハブクラスターの
KubeAPIServer証明書検証ストラテジーを確認し、必要に応じてストラテジーを更新します。セットアップに適したストラテジーについては、ハブクラスターのKubeAPIServer検証ストラテジーの設定を 参照してください。
Required user type or access level: クラスター管理者
1.8.4.1.2. 新規プルシークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
新しいプルシークレットを作成する必要がある場合は、以下の手順を実行します。
- cloud.redhat.com から Kubernetes プルシークレットをダウンロードします。
- プルシークレットをハブクラスターの namespace に追加します。
次のコマンドを実行して、
open-cluster-managementnamespace に新しいシークレットを作成します。oc create secret generic pull-secret -n <open-cluster-management> --from-file=.dockerconfigjson=<path-to-pull-secret> --type=kubernetes.io/dockerconfigjsonopen-cluster-managementをハブクラスターの namespace の名前に置き換えます。ハブクラスターのデフォルトの namespace はopen-cluster-managementです。path-to-pull-secretを、ダウンロードしたプルシークレットへのパスに置き換えます。シークレットは、インポート時にマネージドクラスターに自動的にコピーされます。
-
以前にインストールされたエージェントが、インポートするクラスターから削除されていることを確認します。エラーを回避するには、
open-cluster-management-agentおよびopen-cluster-management-agent-addonnamespace を削除する必要があります。 Red Hat OpenShift Dedicated 環境にインポートする場合には、以下の注意点を参照してください。
- ハブクラスターを Red Hat OpenShift Dedicated 環境にデプロイしている必要があります。
-
Red Hat OpenShift Dedicated のデフォルト権限は dedicated-admin ですが、namespace を作成するための権限がすべて含まれているわけではありません。multicluster engine Operator を使用してクラスターをインポートおよび管理するには、
cluster-admin権限が必要です。
-
以前にインストールされたエージェントが、インポートするクラスターから削除されていることを確認します。エラーを回避するには、
1.8.4.1.3. クラスターのインポート リンクのコピーリンクがクリップボードにコピーされました!
利用可能なクラウドプロバイダーごとに、コンソールから既存のクラスターをインポートできます。
注記: ハブクラスターは別のハブクラスターを管理できません。ハブクラスターは、自動的にインポートおよび自己管理するように設定されるため、ハブクラスターを手動でインポートして自己管理する必要はありません。
デフォルトでは、namespace がクラスター名と namespace に使用されますが、これは変更できます。
重要: クラスターを作成すると、コントローラーはクラスターとそのリソースの namespace を作成します。その namespace には、そのクラスターインスタンスのリソースのみを含めるようにしてください。クラスターを破棄すると、namespace とその中のすべてのリソースが削除されます。
マネージドクラスターはすべて、マネージドクラスターセットに関連付けられている必要があります。マネージドクラスターを ManagedClusterSet に割り当てない場合は、クラスターは default マネージドクラスターセットに自動的に追加されます。
クラスターを別のクラスターセットに追加する場合は、クラスターセットへの clusterset-admin 権限が必要です。クラスターのインポート時に cluster-admin 権限がない場合は、clusterset-admin 権限を持つクラスターセットを選択する必要があります。指定されたクラスターセットに適切な権限がない場合、クラスターのインポートは失敗します。選択するクラスターセットが存在しない場合は、クラスター管理者に連絡して、クラスターセットへの clusterset-admin 権限を受け取ってください。
OpenShift Container Platform Dedicated クラスターをインポートし、vendor=OpenShiftDedicated のラベルを追加してベンダーを指定しない場合、vendor=auto-detect のラベルを追加すると、managed-by=platform ラベルがクラスターに自動的に追加されます。この追加されたラベルを使用して、クラスターを OpenShift Container Platform Dedicated クラスターとして識別し、OpenShift Container Platform Dedicated クラスターをグループとして取得できます。
以下の表は、クラスターをインポートする方法を指定する インポートモード で使用できるオプションを示しています。
| import コマンドの手動実行 | Red Hat Ansible Automation Platform テンプレートなど、コンソールで情報を完了および送信した後に、提供されたコマンドをターゲットクラスターで実行してクラスターをインポートします。 |
| 既存クラスターのサーバー URL および API トークンを入力します。 | インポートするクラスターのサーバー URL および API トークンを指定します。クラスターのアップグレード時に実行する Red Hat Ansible Automation Platform テンプレートを指定できます。 |
|
|
インポートするクラスターの |
注記: Ansible Automation Platform ジョブを作成して実行するには、OperatorHub から Red Hat Ansible Automation Platform Resource Operator をインストールし、実行する必要があります。
クラスター API アドレスを設定するには、任意: Configuring the cluster API address を参照してください。
マネージドクラスター klusterlet を特定のノードで実行するように設定するには、オプション: 特定のノードで実行するように klusterlet を設定する を参照してください。
1.8.4.1.3.1. オプション: クラスター API アドレスの設定 リンクのコピーリンクがクリップボードにコピーされました!
oc get managedcluster コマンドの実行時に表に表示される URL を設定して、クラスターの詳細ページにある Cluster API アドレス をオプションで設定します。
-
cluster-admin権限がある ID でハブクラスターにログインします。 -
ターゲットに設定されたマネージドクラスターの
kubeconfigファイルを設定します。 次のコマンドを実行して、インポートするクラスターのマネージドクラスターエントリーを編集します。
cluster-nameをマネージドクラスターの名前に置き換えます。oc edit managedcluster <cluster-name>以下の例のように、YAML ファイルの
ManagedCluster仕様にManagedClusterClientConfigsセクションを追加します。spec: hubAcceptsClient: true managedClusterClientConfigs: - url: <https://api.new-managed.dev.redhat.com>1 - 1
- URL の値を、インポートするマネージドクラスターへの外部アクセスを提供する URL に置き換えます。
1.8.4.1.3.2. オプション: 特定のノードで実行するように klusterlet を設定する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターの nodeSelector と tolerations アノテーションを設定することで、マネージドクラスター klusterlet を実行するノードを指定できます。これらを設定するには、次の手順を実行します。
- コンソールのクラスターページから、更新するマネージドクラスターを選択します。
YAML コンテンツを表示するには、YAML スイッチを
Onに設定します。注記: YAML エディターは、クラスターをインポートまたは作成するときにのみ使用できます。インポートまたは作成後にマネージドクラスターの YAML 定義を編集するには、OpenShift Container Platform コマンドラインインターフェイスまたは Red Hat Advanced Cluster Management 検索機能を使用する必要があります。
-
nodeSelectorアノテーションをマネージドクラスターの YAML 定義に追加します。このアノテーションのキーは、open-cluster-management/nodeSelectorです。このアノテーションの値は、JSON 形式の文字列マップです。 tolerationsエントリーをマネージドクラスターの YAML 定義に追加します。このアノテーションのキーは、open-cluster-management/tolerationsです。このアノテーションの値は、JSON 形式の toleration リストを表します。結果の YAML は次の例のようになります。apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: annotations: open-cluster-management/nodeSelector: '{"dedicated":"acm"}' open-cluster-management/tolerations: '[{"key":"dedicated","operator":"Equal","value":"acm","effect":"NoSchedule"}]'
KlusterletConfig を使用して、マネージドクラスターの nodeSelector と tolerations を設定することもできます。これらを設定するには、次の手順を実行します。
注: KlusterletConfig を使用する場合、マネージドクラスターは、マネージドクラスターのアノテーションの設定ではなく、KlusterletConfig 設定の構成を使用します。
次のサンプル YAML の内容を適用します。必要に応じて値を置き換えます。
apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: <klusterletconfigName> spec: nodePlacement: nodeSelector: dedicated: acm tolerations: - key: dedicated operator: Equal value: acm effect: NoSchedule-
agent.open-cluster-management.io/klusterlet-config: `<klusterletconfigName>アノテーションをマネージドクラスターに追加し、<klusterletconfigName>をKlusterletConfigの名前に置き換えます。
1.8.4.1.4. インポートされたクラスターの削除 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を実行して、インポートされたクラスターと、マネージドクラスターで作成された open-cluster-management-agent-addon を削除します。
Clusters ページで、Actions > Detach cluster をクリックしてマネージメントからクラスターを削除します。
重要: <your-local-cluster-name> という名前のハブクラスターをデタッチしようとする場合、disableHubSelfManagement のデフォルト設定は false であり、ハブクラスターは自己管理する local-cluster であることに注意してください。この設定が原因で、ハブクラスターがデタッチされると、自身を再インポートして管理し、MultiClusterHub コントローラーがリコンサイルされます。ハブクラスターがデタッチプロセスを完了して再インポートするのに時間がかかる場合があります。プロセスが完了するのを待たずにハブクラスターを再インポートする場合は、次のコマンドを実行して multiclusterhub-operator Pod を再起動し、再インポートを高速化できます。
oc -n open-cluster-management delete -l name=multiclusterhub-operator pods
disableHubSelfManagement の値を true に指定して、自動的にインポートされないように、ハブクラスターの値を変更できます。詳細は、disableHubSelfManagement のトピックを参照してください。
1.8.4.1.4.1. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- カスタムイメージプルシークレット の定義方法の詳細は、カスタムイメージプルシークレットを参照してください。
- disableHubSelfManagement トピックを参照してください。