1.2. マネージドクラスターを Red Hat OpenShift GitOps Operator に登録する
OpenShift GitOps を Push モデルで設定するには、1 つ以上の Red Hat Advanced Cluster Management for Kubernetes マネージドクラスターのセットを OpenShift GitOps Operator のインスタンスに登録します。登録後、アプリケーションをこれらのクラスターにデプロイできます。継続的な OpenShift GitOps 環境を設定して、開発環境、ステージング、および実稼働環境のクラスター全体でアプリケーションの整合性を自動化します。
1.2.1. 前提条件
- Red Hat Advanced Cluster Management for Kubernetes に Red Hat OpenShift GitOps Operator をインストールする必要がある。
- 1 つ以上のマネージドクラスターをインポートする。
- マネージドクラスターを OpenShift GitOps に登録するには、ManagedClusterSet の作成 ドキュメントに記載されている内容を完了してください。
1.2.2. マネージドクラスターを Red Hat OpenShift GitOps に登録する
マネージドクラスターを OpenShift GitOps に登録するには、次の手順を実行します。
-
OpenShift GitOps がデプロイされている namespace にバインドするマネージドクラスターセットを作成します。マネージドクラスターを
openshift-gitops
namespace にバインドする例は、multicloud-integrations
マネージドclusterset
バインディングの例を参照してください。ManagedClusterSetBinding
の作成に関する一般的な情報は、追加リソース セクションの ManagedClusterSetBinding リソースの作成 を参照してください。配置の詳細は、ManagedClusterSets からの ManagedClusters のフィルタリング を参照してください。 マネージドクラスターセットバインディングで使用される namespace で、
Placement
カスタムリソースを作成し、OpenShift GitOps Operator インスタンスに登録するマネージドクラスターのセットを選択します。multicloud-integration
配置例をテンプレートとして使用します。配置情報は、配置での ManagedClusterSets の使用 を参照してください。注記:
- 他の Kubernetes クラスターではなく、OpenShift GitOps Operator インスタンスに登録されるのは、OpenShift Container Platform クラスターのみです。
-
一部の不安定なネットワークシナリオでは、マネージドクラスターが一時的に使用
unavailable
またはunreachable
状態になることがあります。詳細は、Red Hat Advanced Cluster Management および OpenShift GitOps の配置許容範囲の設定 を参照してください。
GitOpsCluster
カスタムリソースを作成し、配置決定から OpenShift GitOps の指定されたインスタンスにマネージドクラスターのセットを登録します。これにより、OpenShift GitOps インスタンスは、これらの Red Hat Advanced Cluster Management マネージドクラスターのいずれかにアプリケーションをデプロイできます。multicloud-integrations
OpenShift GitOps クラスターの例を使用します。注記: 参照される
Placement
リソースは、GitOpsCluster
リソースと同じ namespace に配置されている必要があります。以下の例を参照してください。apiVersion: apps.open-cluster-management.io/v1beta1 kind: GitOpsCluster metadata: name: gitops-cluster-sample namespace: dev spec: argoServer: cluster: local-cluster argoNamespace: openshift-gitops placementRef: kind: Placement apiVersion: cluster.open-cluster-management.io/v1beta1 name: all-openshift-clusters 1
- 1
placementRef.name
の値はall-openshift-clusters
で、argoNamespace: openshift-gitops
にインストールされている OpenShift GitOps インスタンスのターゲットクラスターとして指定されます。argoServer.cluster
仕様にはlocal-cluster
の値が必要です。
- 変更を保存します。これで、OpenShift GitOps ワークフローに従ってアプリケーションを管理できるようになりました。
1.2.3. OpenShift Container Platform クラスター以外のクラスターを Red Hat OpenShift GitOps に登録する
Red Hat Advanced Cluster Management GitOpsCluster
リソースを使用して、OpenShift Container Platform クラスター以外のクラスターを OpenShift GitOps クラスターに登録できるようになりました。この機能では、OpenShift GitOps コンソールを使用して、OpenShift Container Platform クラスター以外のクラスターにアプリケーションリソースをデプロイできます。OpenShift Container Platform クラスター以外のクラスターを OpenShift GitOps クラスターに登録するには、次の手順を実行します。
OpenShift Container Platform 以外の
ManagedCluster
リソースspec
の API サーバー URL に移動し、次のコマンドを実行して検証します。oc get managedclusters eks-1
次の情報のような出力になっていることを確認します。
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37m
OpenShift Container Platform 以外の
MangedCluster
リソースspec
の API サーバー URL が空の場合は、次の手順を実行して手動で更新します。API サーバー URL を完成させるには、次のコマンドを実行して
MangedCluster
リソースspec
を編集します。oc edit managedclusters eks-1
YAML が次のファイルのようになっていることを確認します。
spec: managedClusterClientConfigs: - caBundle: ZW1wdHlDQWJ1bmRsZQo= url: https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com
変更を保存し、次のコマンドを実行して API サーバーが完了したことを確認します。
oc get managedclusters eks-1
- 次の情報のような出力になっていることを確認します。
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37m
クラスターシークレットが生成されたことを確認するには、
openshift-gitops
namespace に移動し、GitOpsCluster
リソースのステータスがsuccessful
として報告されていることを確認します。注記:
Red Hat Advanced Cluster Management 2.12 以降では、次のインポートモードを使用すると、すべてのタイプの非 OpenShift Container Platform
ManagedCluster
リソースの API サーバー URL が自動的にレンダリングされます。- 既存クラスターのサーバー URL および API トークンを入力します。
-
既存クラスターの
kubeconfig
ファイルを入力します。
次の場合、
ManagedClusters
リソースの 1 つに対して API サーバー URL が空になる可能性があります。- OpenShift Container Platform クラスター以外のクラスターは、バージョン 2.12 より前の Red Hat Advanced Cluster Management ハブクラスターにインポートされます。
-
OpenShift Container Platform クラスター以外のクラスターは、インポートモード
Run import commands
を使用して、バージョン 2.12 の Red Hat Advanced Cluster Management ハブクラスターに手動でインポートされます。
1.2.4. Red Hat OpenShift GitOps トークン
OpenShift GitOps Operator と統合すると、配置および ManagedClusterSetBinding
カスタムリソースを通じて OpenShift GitOps namespace にバインドされているすべてのマネージドクラスターに対して、ManagedCluster
にアクセスするためのトークンを含むシークレットが OpenShift GitOps インスタンスサーバー namespace に作成されます。
OpenShift GitOps コントローラーは、リソースをマネージドクラスターに同期するためにこのシークレットを必要とします。デフォルトでは、サービスアカウントアプリケーションマネージャーは、マネージドクラスターのクラスター管理者権限を使用して、OpenShift GitOps インスタンスサーバーの namespace に OpenShift GitOps クラスターシークレットを生成します。デフォルトの namepsace は openshift-gitops
です。
このデフォルトが不要な場合は、OpenShift GitOps インスタンスサーバーの namepsace で OpenShift GitOps クラスターシークレットを生成するために、カスタマイズされた権限を持つサービスアカウントをマネージドクラスターで作成します。デフォルトの namepsace は引き続き openshift-gitops
です。詳細は、Argo CD プッシュモデル用のカスタマイズされたサービスアカウントの作成 を参照してください。
1.2.5. 関連情報
詳細は、次のリソースと例を参照してください。