1.11. 使用 ArgoCD 代理启用 Red Hat OpenShift GitOps 附加组件
pull 模型的 Agent 模式使 OpenShift GitOps 附加组件支持带有 ArgoCD 代理 的高级 pull 模型,以获得应用程序健康的详细状态。在带有网络限制、增强安全要求或为应用程序交付实施 pull 模型时,在环境中使用此代理模式。高级拉取模型由 ArgoCD 代理驱动,并为您提供完全自动化的 OpenShift GitOps 体验。
要使用 ArgoCD 代理启用 OpenShift GitOps 附加组件,请完成以下部分:
先决条件
- 安装了 Red Hat Advanced Cluster Management hub 集群
- 使用 Red Hat Advanced Cluster Management 注册的受管集群
- 在 hub 集群上安装的 OpenShift GitOps operator
-
用于选择目标受管集群的
放置资源 -
绑定到目标命名空间的
ManagedClusterSet -
使用
ArgoCD代理环境配置的 OpenShift GitOps operator 订阅 -
为
Agent模式配置的ArgoCD自定义资源
1.11.1. 配置订阅和资源 复制链接链接已复制到粘贴板!
要启用 ArgoCD 代理,您必须配置 OpenShift GitOps operator 订阅和 ArgoCD 自定义资源。要配置所需的订阅和资源,请完成以下步骤:
在 hub 集群中,运行以下命令来修改 OpenShift GitOps operator 订阅使其包含所需的环境变量:
oc edit subscription gitops-operator -n openshift-gitops-operator
oc edit subscription gitops-operator -n openshift-gitops-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过添加以下 YAML 示例,在
spec.config.env文件中添加以下环境变量:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过添加以下 YAML 示例,将现有
ArgoCD自定义资源替换为兼容的Agent模式配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 YAML 示例:
oc apply -f argocd-example.yaml
oc apply -f argocd-example.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
注: 在 hub 集群中,此配置禁用传统的
ArgoCD控制器,并启用带有 mutual TLS 身份验证的代理主体。
-
注: 在 hub 集群中,此配置禁用传统的
1.11.2. 启用 ArgoCD 代理 复制链接链接已复制到粘贴板!
创建 GitOpsCluster 资源来管理 ArgoCD 代理附加组件部署。控制器会自动为 放置选择的每个受管集群创建以下资源
GitOpsCluster 控制器执行以下操作:
- 创建和自动化 PKI 管理
-
创建为代理模式配置的
ArgoCD集群 secret - 在每个所选受管集群上部署 Argo CD 代理
要启用高级 pull model Argo CD Agent 架构,请完成以下步骤:
在受管集群中,通过添加以下 YAML 示例来创建启用了
ArgoCD代理的GitOpsCluster资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 YAML 示例:
oc apply -f gitopscluster-example.yaml
oc apply -f gitopscluster-example.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.11.3. 验证 ArgoCD 安装 复制链接链接已复制到粘贴板!
成功部署 ArgoCD 代理后,通过在 hub 集群中创建应用程序并确认它可用于受管集群来验证高级 Pull Model 工作流已完成。
要验证成功部署所需的安装和资源,请完成以下步骤:
运行以下命令,检查特定
Agent条件的GitOpsCluster状态:oc get gitopscluster gitops-agent-clusters -n openshift-gitops -o jsonpath='{.status.conditions}' | jqoc get gitopscluster gitops-agent-clusters -n openshift-gitops -o jsonpath='{.status.conditions}' | jqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认您在状态中看到以下条件类型:
-
Ready:GitOpsCluster已就绪,所有组件都正常运行。 -
: 放置引用已解决,受管集群会被检索。PlacementResolved -
ClustersRegistered:受管集群在ArgoCD服务器中成功注册。 -
:为所有受管集群创建 AddOnDeploymentConfig。AddOnDeploymentConfigsReady -
ManagedClusterAddOnsReady:ManagedClusterAddons会创建或更新受管集群。 -
AddOnTemplateReady:为ArgoCD代理模式创建的动态AddOnTemplate。 -
ArgoCDAgentPrereqsReady:设置代理先决条件。 -
CertificatesReady:TLS 证书已签名。 -
ManifestWorksApplied:传播到受管集群的 CA 证书。
-
通过添加以下 YAML 文件,在受管集群命名空间中创建
ArgoCD应用程序资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 YAML 示例:
oc apply -f application-example.yaml
oc apply -f application-example.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在受管集群中,运行以下命令来验证应用程序资源是否已部署:
oc get all -n guestbook
oc get all -n guestbookCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 hub 集群中,运行以下命令来验证应用程序状态是否反映回您:
oc get application guestbook -n <managed cluster name>
oc get application guestbook -n <managed cluster name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
确认当应用成功部署时,状态显示为
Synced。