搜索

1.2. 将受管集群注册到 OpenShift GitOps operator

download PDF

要使用 Push 模型配置 GitOps,您可以将一个或多个 Red Hat Advanced Cluster Management for Kubernetes 受管集群的集合注册到 Red Hat OpenShift Container Platform GitOps operator 实例。注册后,您可以将应用程序部署到这些集群中。设置一个持续 GitOps 环境,以在开发、临时和生产环境中的集群间自动实现应用程序一致性。

1.2.1. 先决条件

  1. 您需要在 Red Hat Advanced Cluster Management for Kubernetes 上安装 Red Hat OpenShift GitOps Operator
  2. 导入一个或多个受管集群。

1.2.2. 将受管集群注册到 GitOps

完成以下步骤,将受管集群注册到 GitOps:

  1. 创建受管集群集绑定,并将受管集群添加到这些受管集群集绑定中。请参阅 multicloud-integrations managedclusterset 中的受管集群集示例。

    如需更多信息,请参阅创建 ManagedClusterSet 文档。

  2. 创建受管集群集绑定到部署 Red Hat OpenShift GitOps 的命名空间。有关将受管集群绑定到 openshift-gitops 命名空间的示例,请参阅 multicloud-integrations 受管集群集绑定示例。在 Additional resources 部分,请参阅创建 ManagedClusterSetBinding 资源 以了解更多有关创建 ManagedClusterSetBinding 的信息。如需有关放置信息,请参阅从 ManagedClusterSets 中过滤 ManagedClusters
  3. 在受管集群集绑定中使用的命名空间中,创建一个 Placement 自定义资源来选择要注册到 OpenShift Container Platform GitOps operator 实例的一组受管集群。使用 multicloud-integration 放置示例作为模板。如需放置信息,请参阅使用 ManagedClusterSet with Placement

    备注:

    • 只有 OpenShift Container Platform 集群注册到 Red Hat OpenShift Container Platform GitOps operator 实例,而不是其他 Kubernetes 集群。
    • 在一些不稳定的网络场景中,受管集群可能会临时处于 unavailableunreachable 的状态。如需了解更多详细信息,请参阅为 Red Hat Advanced Cluster Management 和 OpenShift GitOps 配置放置容限
  4. 创建 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 值。
  5. 保存您的更改。现在,您可以按照 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 logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.