1.2. 将受管集群注册到 Red Hat OpenShift GitOps operator
要使用 Push 模型配置 OpenShift GitOps,您可以将一个或多个 Red Hat Advanced Cluster Management for Kubernetes 受管集群的集合注册到 OpenShift GitOps operator 实例。注册后,您可以将应用程序部署到这些集群中。设置一个持续 GitOps 环境,以在开发、临时和生产环境中的集群间自动实现应用程序一致性。
1.2.1. 先决条件 复制链接链接已复制到粘贴板!
- 您需要在 Red Hat Advanced Cluster Management for Kubernetes 上安装 Red Hat OpenShift GitOps Operator。
- 导入一个或多个受管集群。
- 要将受管集群注册到 OpenShift GitOps,请完成 创建 ManagedClusterSet 文档。
-
启用
ManagedServiceAccount插件来轮换用于 Argo CD 推送和拉取模型连接到托管集群的令牌。有关启用插件的帮助,请参阅配置 klusterlet 插件。
1.2.2. 将受管集群注册到 Red Hat OpenShift GitOps 复制链接链接已复制到粘贴板!
完成以下步骤,将受管集群注册到 OpenShift GitOps:
通过将受管集群绑定到部署 OpenShift GitOps 的命名空间来创建受管集群集。
-
在
Additional resources部分,请参阅创建 ManagedClusterSetBinding 资源 以了解更多有关创建 ManagedClusterSetBinding 的信息。 - 有关放置信息,请参阅使用ManagedCluster对象进行过滤。
-
在
在受管集群集绑定中使用的命名空间中,创建一个放置自定义资源来选择要注册到 OpenShift Container Platform GitOps operator 实例的一组受管集群。使用
multicloud-integration放置示例作为模板。如需放置信息,请参阅使用 ManagedClusterSet with Placement。备注:
- 注:只有 OpenShift Container Platform 集群注册到 ArgoCD 或 OpenShift GitOps operator 实例,而不是其他 Kubernetes 集群。
-
在一些不稳定的网络场景中,受管集群可能会临时处于
unavailable或unreachable的状态。如需了解更多详细信息,请参阅为 Red Hat Advanced Cluster Management 和 OpenShift GitOps 配置放置容限。
创建
GitOpsCluster自定义资源,将一组受管集群从放置决定注册到指定的 OpenShift GitOps 实例。这可让 OpenShift GitOps 实例将应用程序部署到任何 Red Hat Advanced Cluster Management 受管集群。使用multicloud-integrationsOpenShift GitOps 集群示例。注:引用的
放置资源必须与GitOpsCluster资源位于同一个命名空间中。请参见以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
placementRef.name值是all-openshift-clusters,并指定为在argoNamespace: openshift-gitops中安装的 GitOps 实例的目标集群。argoServer.cluster规范需要<your-local-cluster-name>值。
- 保存您的更改。现在,您可以按照 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
oc get managedclusters eks-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证您的输出是否类似以下信息:
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37m
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果非 OpenShift Container Platform
MangedCluster资源spec中的 API 服务器 URL 为空,请完成以下步骤来手动更新它:要完成 API 服务器 URL,请运行以下命令来编辑
MangedCluster资源spec:oc edit managedclusters eks-1
oc edit managedclusters eks-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证您的 YAML 类似于以下文件:
spec: managedClusterClientConfigs: - caBundle: ZW1wdHlDQWJ1bmRsZQo= url: https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.comspec: managedClusterClientConfigs: - caBundle: ZW1wdHlDQWJ1bmRsZQo= url: https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 保存更改,运行以下命令来验证 API 服务器是否已完成:
oc get managedclusters eks-1
oc get managedclusters eks-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证您的输出是否类似以下信息:
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37m
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE eks-1 true https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com True True 37mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证是否生成了集群 secret,请转至
openshift-gitops命名空间,并确认GitOpsCluster资源状态报告成功。备注:
如果使用以下导入模式,则所有非 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 集群通过导入模式手动导入到 Red Hat Advanced Cluster Management hub 集群,即
Run import 命令。
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. 其他资源 复制链接链接已复制到粘贴板!
如需更多信息,请参阅以下资源和示例: