1.2. マネージドクラスターの OpenShift GitOps オペレーターへの登録
Push モデルで GitOps を設定するには、1 つ以上の Red Hat Advanced Cluster Management for Kubernetes マネージドクラスターのセットを Red Hat OpenShift Container Platform GitOps Operator のインスタンスに登録できます。登録後、アプリケーションをこれらのクラスターにデプロイできます。継続的な GitOps 環境を設定して、開発環境、ステージング、および実稼働環境のクラスター全体でアプリケーションの整合性を自動化します。
1.2.1. 前提条件
- Red Hat Advanced Cluster Management for Kubernetes に Red Hat OpenShift GitOps Operator をインストールする必要がある。
- 1 つ以上のマネージドクラスターをインポートする。
1.2.2. マネージドクラスターの GitOps への登録
マネージドクラスターを GitOps に登録するには、次の手順を実行します。
マネージドクラスターセットを作成し、マネージドクラスターをこれらのマネージドクラスターセットに追加します。
multicloud-integrations managedclusterset
のマネージドクラスターセットの例を参照してください。詳細は、ManagedClusterSet の作成 ドキュメントを参照してください。
-
Red Hat OpenShift GitOps がデプロイされている namespace にバインドするマネージドクラスターセットを作成します。マネージドクラスターを
openshift-gitops
namespace にバインドする例は、multicloud-integrations
マネージドクラスターセットバインディングの例を参照してください。ManagedClusterSetBinding
の作成に関する一般的な情報は、追加リソース セクションの ManagedClusterSetBinding リソースの作成 を参照してください。配置の詳細は、ManagedClusterSets からの ManagedClusters のフィルタリング を参照してください。 マネージドクラスターセットバインディングで使用される namespace で、
Placement
カスタムリソースを作成し、OpenShift Container Platform GitOps Operator インスタンスに登録するマネージドクラスターのセットを選択します。multicloud-integration
配置例をテンプレートとして使用します。配置情報は、配置での ManagedClusterSets の使用 を参照してください。注記:
- 他の Kubernetes クラスターではなく、Red Hat OpenShift Container Platform 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
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
にインストールされている GitOps インスタンスのターゲットクラスターとして指定されます。argoServer.cluster
仕様にはlocal-cluster
の値が必要です。
- 変更を保存します。次に、GitOps ワークフローに従って、アプリケーションを管理できます。
1.2.3. GitOps トークン
配置および ManagedClusterSetBinding
カスタムリソースを使用して GitOps namespace にバインドされているすべてのマネージドクラスターの GitOps Operator と統合すると、ManagedCluster
にアクセスするためのトークンが含まれるシークレットがその namespace に作成されます。これは、GitOps コントローラーがリソースをマネージドクラスターと同期するために必要です。ユーザーに GitOps namespace への管理者アクセス権が付与され、アプリケーションのライフサイクル操作を実行すると、ユーザーはこのシークレットへのアクセス権と、マネージドクラスターへの admin
レベルのアクセス権が付与されます。
これが望ましくない場合は、ユーザーをこの namespace の範囲の admin
ロールにバインドする代わりに、ユーザーをバインドするために作成および使用できるアプリケーションリソースを操作するために必要なアクセス権限がある、より制限の厳しいカスタムロールを使用します。以下の ClusterRole
の例を参照してください。
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: application-set-admin rules: - apiGroups: - argoproj.io resources: - applicationsets verbs: - get - list - watch - update - delete - deletecollection - patch
1.2.4. 関連情報
- 詳細は Red Hat Advanced Cluster Management および OpenShift GitOps の配置許容範囲の設定 を参照してください。
-
multicloud-integrations
マネージドクラスターセット の例を参照してください。 - ManagedClusterSet の作成 を参照してください。
-
multicloud-integration
の配置 の例を参照してください。 - 配置情報は、Placement overview を参照してください。
-
multicloud-integrations
GitOps クラスター の例を参照してください。 -
multicloud-integrations
マネージドクラスターセットバインディング の例を参照してください。 - 詳細は、ManagedClusterSetBinding リソースの作成 ドキュメントを参照してください。
- 詳細は、GitOps について を参照してください。