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 の作成 ドキュメントに記載されている内容を完了してください。
-
ManagedServiceAccountアドオンを有効にして、Argo CD プッシュおよびプルモデルが管理対象クラスターに接続するために使用するトークンをローテーションします。アドオンを有効にする方法は、klusterlet アドオンの設定 を参照してください。
1.2.2. マネージドクラスターを Red Hat OpenShift GitOps に登録する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターを OpenShift GitOps に登録するには、次の手順を実行します。
OpenShift GitOps がデプロイされている namespace にバインドして、マネージドクラスターセットを作成します。
-
ManagedClusterSetBindingの作成に関する一般的な情報は、関連情報 セクションの ManagedClusterSetBinding リソースの作成 を参照してください。 - 配置情報については、ManagedCluster オブジェクトによるフィルタリング を参照してください。
-
マネージドクラスターセットバインディングで使用される 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-integrationsOpenShift GitOps クラスターの例を使用します。注記: 参照される
Placementリソースは、GitOpsClusterリソースと同じ namespace に配置されている必要があります。以下の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
placementRef.nameの値はall-openshift-clustersで、argoNamespace: openshift-gitopsにインストールされている OpenShift GitOps インスタンスのターゲットクラスターとして指定されます。argoServer.cluster仕様には<your-local-cluster-name>値が必要です。
- 変更を保存します。これで、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
oc get managedclusters eks-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の情報のような出力になっていることを確認します。
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37m
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37mCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform 以外の
MangedClusterリソースspecの API サーバー URL が空の場合は、次の手順を実行して手動で更新します。API サーバー URL を完成させるには、次のコマンドを実行して
MangedClusterリソースspecを編集します。oc edit managedclusters eks-1
oc edit managedclusters eks-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML が次のファイルのようになっていることを確認します。
spec: managedClusterClientConfigs: - caBundle: ZW1wdHlDQWJ1bmRsZQo= url: https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.comspec: managedClusterClientConfigs: - caBundle: ZW1wdHlDQWJ1bmRsZQo= url: https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を保存し、次のコマンドを実行して API サーバーが完了したことを確認します。
oc get managedclusters eks-1
oc get managedclusters eks-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 次の情報のような出力になっていることを確認します。
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37m
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37mCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターシークレットが生成されたことを確認するには、
openshift-gitopsnamespace に移動し、GitOpsClusterリソースのステータスがsuccessfulとして報告されていることを確認します。注記:
以下のインポート方法を使用すると、OpenShift Container Platform を除くあらゆる種類の
ManagedClusterリソースの API サーバー URL が自動的にレンダリングされます。- 既存クラスターのサーバー URL および API トークンを入力する。
-
既存クラスターの
kubeconfigファイルを入力する。
次の場合、いずれかの
ManagedClustersリソースの API サーバー URL が空になる可能性があります。- OpenShift Container Platform 以外のクラスターを、バージョン 2.12 より前の Red Hat Advanced Cluster Management ハブクラスターにインポートする。
-
OpenShift Container Platform クラスター以外のクラスターを、インポートモード
Run import commandsを使用して、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 クラスターシークレットを生成します。デフォルトの namespace は openshift-gitops です。
このデフォルトが不要な場合は、OpenShift GitOps インスタンスサーバーの namespace で OpenShift GitOps クラスターシークレットを生成するために、カスタマイズされた権限を持つサービスアカウントをマネージドクラスターで作成します。デフォルトの namespace は引き続き openshift-gitops です。詳細は、Argo CD プッシュモデル用のカスタマイズされたサービスアカウントの作成 を参照してください。
1.2.5. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
詳細は、次のリソースと例を参照してください。