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. 先决条件
- 您需要在 Red Hat Advanced Cluster Management for Kubernetes 上安装 Red Hat OpenShift GitOps Operator。
- 导入一个或多个受管集群。
- 要将受管集群注册到 OpenShift GitOps,请完成 创建 ManagedClusterSet 文档。
1.2.2. 将受管集群注册到 Red Hat OpenShift GitOps
完成以下步骤,将受管集群注册到 OpenShift GitOps:
-
创建受管集群集绑定到部署 OpenShift GitOps 的命名空间。有关将受管集群绑定到
openshift-gitops
命名空间的示例,请参阅multicloud-integrations
受管集群设置绑定示例。在 Additional resources 部分,请参阅创建 ManagedClusterSetBinding 资源 以了解更多有关创建
ManagedClusterSetBinding
的信息。如需有关放置信息,请参阅从 ManagedClusterSets 中过滤 ManagedClusters。 在受管集群集绑定中使用的命名空间中,创建一个
放置自定义资源
来选择要注册到 OpenShift GitOps operator 实例的一组受管集群。使用multicloud-integration
放置示例作为模板。如需放置信息,请参阅使用 ManagedClusterSet with Placement。备注:
- 只有 OpenShift Container Platform 集群注册到 OpenShift GitOps operator 实例,而不是其他 Kubernetes 集群。
-
在一些不稳定的网络场景中,受管集群可能会临时处于
unavailable
或unreachable
的状态。如需了解更多详细信息,请参阅为 Red Hat Advanced Cluster Management 和 OpenShift GitOps 配置放置容限。
创建
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
值。
- 保存您的更改。现在,您可以按照 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
验证您的输出是否类似以下信息:
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37m
如果非 OpenShift Container Platform
MangedCluster
资源spec
中的 API 服务器 URL 为空,请完成以下步骤来手动更新它:要完成 API 服务器 URL,请运行以下命令来编辑
MangedCluster
资源spec
:oc edit managedclusters eks-1
验证您的 YAML 类似于以下文件:
spec: managedClusterClientConfigs: - caBundle: ZW1wdHlDQWJ1bmRsZQo= url: https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com
保存更改,运行以下命令来验证 API 服务器是否已完成:
oc get managedclusters eks-1
- 验证您的输出是否类似以下信息:
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37m
要验证是否生成了集群 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. 其他资源
如需更多信息,请参阅以下资源和示例: