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


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

1.2.1. 先决条件

  1. 您需要在 Red Hat Advanced Cluster Management for Kubernetes 上安装 Red Hat OpenShift GitOps Operator。
  2. 导入一个或多个受管集群。
  3. 要将受管集群注册到 OpenShift GitOps,请完成 创建 ManagedClusterSet 文档。

1.2.2. 将受管集群注册到 Red Hat OpenShift GitOps

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

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

    备注:

    • 只有 OpenShift Container Platform 集群注册到 OpenShift GitOps operator 实例,而不是其他 Kubernetes 集群。
    • 在一些不稳定的网络场景中,受管集群可能会临时处于 unavailableunreachable 的状态。如需了解更多详细信息,请参阅为 Red Hat Advanced Cluster Management 和 OpenShift GitOps 配置放置容限
  3. 创建 GitOpsCluster 自定义资源,将一组受管集群从放置决定注册到指定的 OpenShift GitOps 实例。这可让 OpenShift GitOps 实例将应用程序部署到任何 Red Hat Advanced Cluster Management 受管集群。使用 multicloud-integrations OpenShift 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 中安装的 OpenShift GitOps 实例的目标集群。argoServer.cluster 规格需要 local-cluster 值。
  4. 保存您的更改。现在,您可以按照 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 集群,请完成以下步骤:

  1. 进入非 OpenShift Container Platform ManagedCluster 资源 spec 中的 API 服务器 URL,并运行以下命令来验证它:

    oc get managedclusters eks-1
  2. 验证您的输出是否类似以下信息:

    NAME    HUB ACCEPTED   MANAGED CLUSTER URLS                                                      JOINED   AVAILABLE   AGE
    eks-1   true           https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com  True     True        37m
  3. 如果非 OpenShift Container Platform MangedCluster 资源 spec 中的 API 服务器 URL 为空,请完成以下步骤来手动更新它:

    1. 要完成 API 服务器 URL,请运行以下命令来编辑 MangedCluster 资源 spec

      oc edit managedclusters eks-1
    2. 验证您的 YAML 类似于以下文件:

      spec:
        managedClusterClientConfigs:
        - caBundle: ZW1wdHlDQWJ1bmRsZQo=
          url: https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com
    3. 保存更改,运行以下命令来验证 API 服务器是否已完成:

      oc get managedclusters eks-1
    4. 验证您的输出是否类似以下信息:
    NAME     HUB ACCEPTED  MANAGED CLUSTER URLS                                                      JOINED   AVAILABLE   AGE
    eks-1    true          https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com  True     True        37m
  4. 要验证是否生成了集群 secret,请转至 openshift-gitops 命名空间,并确认 GitOpsCluster 资源状态报告成功。

    备注:

    • 在 Red Hat Advanced Cluster Management 2.12 或更高版本中,如果您使用以下导入模式,所有类型的非 OpenShift Container Platform ManagedCluster 资源的 API 服务器 URL 会自动显示:

      • 为现有集群输入服务器 URL 和 API 令牌。
      • 为现有集群输入 kubeconfig 文件。
    • 以下情况可使其中一个 ManagedClusters 资源使 API 服务器 URL 为空:

      • 在版本 2.12 前,非 OpenShift Container Platform 集群会导入到 Red Hat Advanced Cluster Management hub 集群中。
      • 非 OpenShift Container Platform 集群通过导入模式手动导入到版本 2.12 中的 Red Hat Advanced Cluster Management hub 集群,运行导入命令

1.2.4. Red Hat OpenShift GitOps 令牌

当您与 OpenShift GitOps operator 集成时,对于通过放置和 ManagedClusterSetBinding 自定义资源绑定到 OpenShift GitOps 命名空间的每个受管集群,会在 OpenShift GitOps 实例服务器命名空间中创建一个令牌来访问 ManagedCluster

OpenShift GitOps 控制器需要此 secret 将资源同步到受管集群。默认情况下,服务帐户应用程序管理器与受管集群上的集群管理员权限一起工作,以在 OpenShift GitOps 实例服务器命名空间中生成 OpenShift GitOps 集群 secret。默认命名空间是 openshift-gitops

如果您不想此默认值,请在受管集群中创建一个带有自定义权限的服务帐户,以便在 OpenShift GitOps 实例服务器命名空间中生成 OpenShift GitOps 集群 secret。默认命名空间仍然是 openshift-gitops。如需更多信息,请参阅为 Argo CD push 模型创建自定义服务帐户

1.2.5. 其他资源

如需更多信息,请参阅以下资源和示例:

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.