1.2. 将受管集群注册到 OpenShift GitOps operator
要使用 Push 模型配置 GitOps,您可以将一个或多个 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.2.2. 将受管集群注册到 GitOps
完成以下步骤,将受管集群注册到 GitOps:
创建受管集群集,并将受管集群添加到这些受管集群集中。请参阅
multicloud-integrations managedclusterset
中的受管集群集示例。如需更多信息,请参阅创建 ManagedClusterSet 文档。
-
创建受管集群集绑定到部署 Red Hat OpenShift GitOps 的命名空间。有关将受管集群绑定到
openshift-gitops
命名空间的示例,请参阅multicloud-integrations
受管集群集绑定示例。在 Additional resources 部分,请参阅创建 ManagedClusterSetBinding 资源 以了解更多有关创建ManagedClusterSetBinding
的信息。如需有关放置信息,请参阅从 ManagedClusterSets 中过滤 ManagedClusters。 在受管集群集绑定中使用的命名空间中,创建一个
Placement
自定义资源来选择要注册到 OpenShift Container Platform GitOps operator 实例的一组受管集群。使用multicloud-integration
放置示例作为模板。如需放置信息,请参阅使用 ManagedClusterSet with Placement。备注:
- 只有 OpenShift Container Platform 集群注册到 Red Hat OpenShift Container Platform GitOps operator 实例,而不是其他 Kubernetes 集群。
-
在一些不稳定的网络场景中,受管集群可能会临时处于
unavailable
或unreachable
的状态。如需了解更多详细信息,请参阅为 Red Hat Advanced Cluster Management 和 OpenShift GitOps 配置放置容限。
创建
GitOpsCluster
自定义资源,将一组受管集群从放置决定注册到指定的 OpenShift GitOps 实例。这可让 OpenShift GitOps 实例将应用程序部署到任何 Red Hat Advanced Cluster Management 受管集群。使用multicloud-integrations
GitOps 集群示例。注:引用的
放置
资源必须与GitOpsCluster
资源位于同一个命名空间中。请参见以下示例: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 operator 集成时,会在命名空间中创建一个令牌来访问 ManagedCluster
命名空间。GitOps 控制器需要把资源同步到受管集群。当用户获得一个管理员访问 GitOps 命名空间以执行应用程序生命周期操作时,用户也获得了对受管集群的此 secret 和 admin
级别的访问权限。
如果需要这样做,而不是将用户绑定到命名空间范围的 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
放置示例。 - 如需放置信息,请参阅放置概述。
-
请参阅
multicloud-integrations
GitOps 集群 示例。 -
请参阅
multicloud-integrations
受管集群集绑定 示例。 - 如需更多信息,请参阅创建 ManagedClusterSetBinding 资源文档。
- 请参阅关于 GitOps 以了解更多信息。