第8章 ハブクラスターへのターゲットのマネージドクラスターのインポート
別の Kubernetes クラウドプロバイダーからクラスターをインポートできます。インポートすると、ターゲットクラスターは Red Hat Advanced Cluster Management for Kubernetes ハブクラスターのマネージドクラスターになります。指定されていない場合には、ハブクラスターとターゲットのマネージドクラスターにアクセスできる場所で、インポートタスクを実行します。
ハブクラスターは 他 のハブクラスターの管理はできず、自己管理のみが可能です。ハブクラスターは、自動的にインポートして自己管理できるように設定されています。ハブクラスターは手動でインポートする必要はありません。
ただし、ハブクラスターを削除して、もう一度インポートする場合は、local-cluster:true
ラベルを追加する必要があります。
コンソールまたは CLI からのマネージドクラスターの設定は、以下の手順から選択します。
必要なユーザータイプまたはアクセスレベル: クラスター管理者
8.1. コンソールを使用した既存クラスターのインポート
Red Hat Advanced Cluster Management for Kubernetes をインストールすると、管理するクラスターをインポートする準備が整います。コンソールと CLI の両方からインポートできます。コンソールからインポートするには、以下の手順に従います。この手順では、認証用にターミナルが必要です。
8.1.1. 前提条件
- Red Hat Advanced Cluster Management for Kubernetes のハブクラスターをデプロイしておく必要がある。ベアメタルクラスターをインポートする場合には、ハブクラスターを Red Hat OpenShift Container Platform バージョン 4.6 以降にインストールする必要があります。
- 管理するクラスターとインターネット接続が必要である。
-
kubectl
をインストールしておく必要がある。kubectl
のインストール手順は、Kubernetes ドキュメント の「Install and Set Up kubectl」を参照してください。
-
Base64
コマンドラインツールが必要である。 -
Red Hat OpenShift Container Platformによって作成されていないクラスターをインポートする場合は、
multiclusterhub.spec.imagePullSecret
を定義する必要があります。このシークレットは、Red Hat Advanced Cluster Management for Kubernetes のインストール時に作成されている場合もあります。シークレットの定義の詳細はOperatorHub からのインストールを参照してください。 Red Hat OpenShift Dedicated 環境にインポートする場合:
- ハブクラスターを Red Hat OpenShift Dedicated 環境にデプロイしている必要があります。
-
Red Hat OpenShift Dedicated のデフォルトパーミッションを dedicated-admin ですが、namespace を作成するためのパーミッションがすべて含まれているわけではありません。Red Hat Advanced Cluster Management for Kubernetes でクラスターをインポートして管理するには
cluster-admin
パーミッションが必要です。
必要なユーザータイプまたはアクセスレベル: クラスター管理者
8.1.2. クラスターのインポート
利用可能なクラウドプロバイダーごとに、Red Hat Advanced Cluster Management for Kubernetes コンソールから既存のクラスターをインポートできます。
注記: ハブクラスターは別のハブクラスターを管理できません。ハブクラスターは、自動的にインポートおよび自己管理するように設定されるため、ハブクラスターを手動でインポートして自己管理する必要はありません。
- ナビゲーションメニューから Infrastructure > Clusters を選択します。
- Add cluster をクリックします。
- Import an existing cluster をクリックします。
- クラスターの名前を指定します。デフォルトで、namespace はクラスター名と namespace に使用されます。
オプション: ラベル を追加します。
注記: Red Hat OpenShift Dedicated クラスターをインポートし、
vendor=OpenShiftDedicated
のラベルを追加してベンダーが指定されないようにする場合、またはvendor=auto-detect
のラベルを追加する場合にはmanaged-by=platform
ラベルがクラスターに自動的に追加されます。この追加ラベルを使用して、クラスターを Red Hat OpenShift Dedicated クラスターとして識別し、Red Hat OpenShift Dedicated クラスターをグループとして取得できます。以下のオプションからインポートするクラスター特定に使用する インポートモード を選択します。
import コマンドを手動で実行する: 指定した情報に基づいてコピーして実行できるインポートコマンドを生成します。Save import and generate code をクリックし、
open-cluster-management-agent-addon
のデプロイに使用するコマンドを生成します。確認メッセージが表示されます。Import an existing cluster ウィンドウで Copy command を選択し、生成されたコマンドおよびトークンをクリップボードにコピーします。
重要: コマンドには、インポートした各クラスターにコピーされるプルシークレット情報が含まれます。インポートしたクラスターにアクセスできるユーザーであれば誰でも、プルシークレット情報を表示することもできます。https://cloud.redhat.com/ で 2 つ目のプルシークレットを作成することを検討するか、サービスアカウントを作成して個人の認証情報を保護してください。プルシークレットの詳細は、「イメージプルシークレットの使用」または「サービスアカウントの概要および作成」を参照してください。
- インポートするマネージドクラスターにログインします。
Red Hat OpenShift Dedicated 環境のみ対象 : 以下の手順を実行します。
-
マネージドクラスターで
open-cluster-management-agent
およびopen-cluster-management
namespace またはプロジェクトを作成します。 - OpenShift Container Platform カタログで klusterlet Operator を検索します。
作成した
open-cluster-management
namespace またはプロジェクトにインストールします。重要:
open-cluster-management-agent
namespace に Operator をインストールしないでください。以下の手順を実行して、import コマンドからブートストラップシークレットを展開します。
import コマンドを生成します。
- Red Hat Advanced Cluster Management コンソールで、Infrastructure > Clusters を選択します。
- Add a cluster > Import an existing cluster を選択します。
- クラスター情報を追加し、Save import and generate code を選択します。
- import コマンドをコピーします。
-
import-command
という名前で作成したファイルに、import コマンドを貼り付けます。 以下のコマンドを実行して、新しいファイルにコンテンツを挿入します。
cat import-command | awk '{split($0,a,"&&"); print a[3]}' | awk '{split($0,a,"|"); print a[1]}' | sed -e "s/^ echo //" | base64 -d
-
出力で
bootstrap-hub-kubeconfig
という名前のシークレットを見つけ、コピーします。 -
シークレットをマネージドクラスターの
open-cluster-management-agent
namespace に適用します。 インストールした Operator の例を使用して klusterlet リソースを作成します。clusterName は、インポート中に設定されたクラスター名と同じ名前に変更する必要があります。
注記:
managedcluster
リソースがハブに正しく登録されると、2 つの klusterlet Operator がインストールされます。klusterlet Operator の 1 つはopen-cluster-management
namespace に、もう 1 つはopen-cluster-management-agent
namespace にあります。Operator が複数あっても klusterlet の機能には影響はありません。
-
マネージドクラスターで
Red OpenShift Dedicated 環境に含まれていないクラスターのインポート: 以下の手順を実行します。
必要な場合は、マネージドクラスターの
kubectl
コマンドを設定します。kubectl
コマンドラインインターフェースの設定方法は、「サポート対象のクラウド」を参照してください。-
マネージドクラスターに
open-cluster-management-agent-addon
をデプロイするには、コピーしたトークンでコマンドを実行します。
- View cluster をクリックして Overview ページのクラスターの概要を表示します。
- 既存のクラスターのサーバー URL および API トークンを入力する: インポートするクラスターの サーバー URL および API トークンを指定します。
-
kubeconfig: インポートしているクラスターの
kubeconfig
ファイルの内容をコピーし、貼り付けます。
オプション:
oc get managedcluster
コマンドを実行する際に、テーブルに表示される URL を設定して、クラスターの詳細ページにある Cluster API アドレス を設定します。-
cluster-admin
パーミッションがある ID でハブクラスターにログインします。 ターゲットのマネージドクラスターの
kubectl
を設定します。kubectl
の設定方法は、サポート対象のクラウド を参照してください。以下のコマンドを入力して、インポートしているクラスターのマネージドクラスターエントリーを編集します。
oc edit managedcluster <cluster-name>
cluster-name
は、マネージドクラスターの名前に置き換えます。以下の例のように、YAML ファイルの
ManagedCluster
仕様にmanageClusterClientConfigs
セクションを追加します。spec: hubAcceptsClient: true managedClusterClientConfigs: - url: https://multicloud-console.apps.new-managed.dev.redhat.com
URL の値を、インポートするマネージドクラスターへの外部アクセスを提供する URL に置き換えます。
-
クラスターがインポートされました。Import another を選択すると、さらにインポートできます。
8.1.3. インポートされたクラスターの削除
以下の手順を実行して、インポートされたクラスターと、マネージドクラスターで作成された open-cluster-management-agent-addon
を削除します。
- Clusters ページの表から、インポートされたクラスターを見つけます。
- Actions > Detach cluster をクリックしてマネージメントからクラスターを削除します。
注記: local-cluster
という名前のハブクラスターをデタッチしようとする場合には、デフォルトの disableHubSelfManagement
設定が false
である点に注意してください。この設定が原因で、ハブクラスターはデタッチされると、自身を再インポートして管理し、MultiClusterHub
コントローラーが調整されます。ハブクラスターがデタッチプロセスを完了して再インポートするのに時間がかかる場合があります。プロセスが終了するのを待たずにハブクラスターを再インポートする場合には、以下のコマンドを実行して multiclusterhub-operator
Pod を再起動して、再インポートの時間を短縮できます。
oc delete po -n open-cluster-management `oc get pod -n open-cluster-management | grep multiclusterhub-operator| cut -d' ' -f1`
「ネットワーク接続時のオンラインインストール」で説明されているように、disableHubSelfManagement
の値を true
に指定して、自動的にインポートされないように、ハブクラスターの値を変更できます。