第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.5 以降にインストールする必要があります。
- 管理するクラスターとインターネット接続が必要である。
-
kubectlをインストールしておく必要がある。kubectlのインストール手順は、Kubernetes ドキュメント の「Install and Set Up kubectl」を参照してください。
-
Base64コマンドラインツールが必要である。 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 コンソールから既存のクラスターをインポートできます。
注記: ハブクラスターは別のハブクラスターを管理できません。ハブクラスターは、自動的にインポートおよび自己管理するように設定されるため、ハブクラスターを手動でインポートして自己管理する必要はありません。
- ナビゲーションメニューで Automate 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 クラスターをグループとして取得できます。-
Save import and generate code をクリックし、
open-cluster-management-agent-addonのデプロイに使用するコマンドを生成します。確認メッセージが表示されます。 オプション:
oc get managedclusterコマンドを実行する際に、テーブルに表示される URL を設定して、クラスターの詳細ページにある Cluster API アドレス を設定します。-
cluster-adminパーミッションがある ID でハブクラスターにログインします。 ターゲットのマネージドクラスターの
kubectlを設定します。kubectlの設定方法は、「 サポート対象のクラウド 」を参照してください。以下のコマンドを入力して、インポートしているクラスターのマネージドクラスターエントリーを編集します。
oc edit managedcluster <cluster-name>
oc edit managedcluster <cluster-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-nameは、マネージドクラスターの名前に置き換えます。以下の例のように、YAML ファイルの
ManagedCluster仕様にmanageClusterClientConfigsセクションを追加します。spec: hubAcceptsClient: true managedClusterClientConfigs: - url: https://multicloud-console.apps.new-managed.dev.redhat.com
spec: hubAcceptsClient: true managedClusterClientConfigs: - url: https://multicloud-console.apps.new-managed.dev.redhat.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow URL の値を、インポートするマネージドクラスターへの外部アクセスを提供する URL に置き換えます。
-
Import an existing cluster ウィンドウで Copy command を選択し、生成されたコマンドおよびトークンをクリップボードにコピーします。
重要: コマンドには、インポートした各クラスターにコピーされるプルシークレット情報が含まれます。インポートしたクラスターにアクセスできるユーザーであれば誰でも、プルシークレット情報を表示することもできます。https://cloud.redhat.com/ で 2 つ目のプルシークレットを作成することを検討するか、サービスアカウントを作成して個人の認証情報を保護してください。プルシークレットの詳細は、「イメージプルシークレットの使用」または「サービスアカウントの概要および作成」を参照してください。
- インポートするマネージドクラスターにログインします。
Red Hat OpenShift Dedicated 環境のみ対象 : 以下の手順を実行します。
-
マネージドクラスターで
open-cluster-management-agentおよびopen-cluster-managementnamespace またはプロジェクトを作成します。 - OpenShift Container Platform カタログで klusterlet Operator を検索します。
作成した
open-cluster-managementnamespace またはプロジェクトにインストールします。重要:
open-cluster-management-agentnamespace に Operator をインストールしないでください。以下の手順を実行して、import コマンドからブートストラップシークレットを展開します。
import コマンドを生成します。
- Red Hat Advanced Cluster Management コンソールで、Automate infrastructure > Clusters を選択します。
- Add a cluster > Import an existing cluster を選択します。
- クラスター情報を追加し、Save import and generate code を選択します。
- import コマンドをコピーします。
-
import-commandという名前で作成したファイルに、import コマンドを貼り付けます。 Red Hat Advanced Cluster Management バージョン 2.2.x のバージョンに応じて、以下のコマンドを実行して import コマンドをデコードします。
Red Hat Advanced Cluster Management バージョン 2.2.x のアップグレード済みの z-stream バージョン (例: 2.2.2) を実行している場合は、以下のコマンドを実行します。
cat import-command | awk '{split($0,a,"&&"); print a[3]}' | awk '{split($0,a,"|"); print a[1]}' | sed -e "s/^ echo //" | sed 's/\"//g' | base64 -dcat import-command | awk '{split($0,a,"&&"); print a[3]}' | awk '{split($0,a,"|"); print a[1]}' | sed -e "s/^ echo //" | sed 's/\"//g' | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Advanced Cluster Management バージョン 2.2 のバージョンを後続の z-stream にアップグレードしていない場合は、以下のコマンドを実行します (例: バージョン 2.2.0)。
cat import-command | awk '{split($0,a,"&&"); print a[3]}' | awk '{split($0,a,"|"); print a[1]}' | sed -e "s/^ echo //" | base64 -dcat import-command | awk '{split($0,a,"&&"); print a[3]}' | awk '{split($0,a,"|"); print a[1]}' | sed -e "s/^ echo //" | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
出力で
bootstrap-hub-kubeconfigという名前のシークレットを見つけ、コピーします。 -
シークレットをマネージドクラスターの
open-cluster-management-agentnamespace に適用します。 インストールした Operator の例を使用して klusterlet リソースを作成します。clusterName は、インポート中に設定されたクラスター名と同じ名前に変更する必要があります。
注記:
managedclusterリソースがハブに正しく登録されると、2 つの klusterlet Operator がインストールされます。klusterlet Operator の 1 つはopen-cluster-managementnamespace に、もう 1 つはopen-cluster-management-agentnamespace にあります。Operator が複数あっても klusterlet の機能には影響はありません。
-
マネージドクラスターで
Red OpenShift Dedicated 環境に含まれていないクラスターのインポート: 以下の手順を実行します。
必要な場合は、マネージドクラスターの
kubectlコマンドを設定します。kubectlコマンドラインインターフェースの設定方法は、「 サポート対象のクラウド 」を参照してください。-
マネージドクラスターに
open-cluster-management-agent-addonをデプロイするには、コピーしたトークンでコマンドを実行します。
- View cluster をクリックして Overview ページのクラスターの概要を表示します。
クラスターがインポートされました。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`
oc delete po -n open-cluster-management `oc get pod -n open-cluster-management | grep multiclusterhub-operator| cut -d' ' -f1`
「ネットワーク接続時のオンラインインストール」で説明されているように、disableHubSelfManagement の値を true に指定して、自動的にインポートされないように、ハブクラスターの値を変更できます。