This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.19.17. GitOps ZTP 故障排除
如前文所述,ArgoCD 管道会将 SiteConfig 和 PolicyGenTemplate 自定义资源 (CR) 从 Git 存储库同步到 hub 集群。在此过程中,同步后 hook 会创建也会应用到 hub 集群的安装和策略 CR。使用以下步骤排除在此过程中可能出现的问题。
19.17.1. 验证安装 CR 的生成 复制链接链接已复制到粘贴板!
SiteConfig 将安装自定义资源 (CR) 应用到名称与站点名称匹配的命名空间中的 hub 集群。要检查状态,请输入以下命令:
oc get AgentClusterInstall -n <cluster_name>
$ oc get AgentClusterInstall -n <cluster_name>
如果没有返回对象,请使用以下步骤对 SiteConfig 到安装 CR 的 ArgoCD 管道流进行故障排除。
流程
使用以下命令之一检查
SiteConfig到 hub 集群的同步:oc get siteconfig -A
$ oc get siteconfig -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者
oc get siteconfig -n clusters-sub
$ oc get siteconfig -n clusters-subCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果缺少
SiteConfig,则出现以下情况之一:clusters 应用程序无法将 CR 从 Git 存储库同步到 hub。使用以下命令验证以下内容:
oc describe -n openshift-gitops application clusters
$ oc describe -n openshift-gitops application clustersCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
Status: Synced并且Revision:是推送到订阅的存储库的提交的 SHA。- 预同步 hook 失败,可能是因为拉取容器镜像失败。检查 ArgoCD 仪表板,了解 clusters 应用程序中预同步作业的状态。
验证 post hook 作业是否运行:
oc describe job -n clusters-sub siteconfig-post
$ oc describe job -n clusters-sub siteconfig-postCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果成功,返回的输出表示
succeeded: 1。 - 如果作业失败,ArgoCD 会重试它。在某些情况下,第一次通过将失败,第二次通过将指示作业通过。
-
如果成功,返回的输出表示
检查 post hook 任务中的错误:
oc get pod -n clusters-sub
$ oc get pod -n clusters-subCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意
siteconfig-post-xxxxxpod 的名称:oc logs -n clusters-sub siteconfig-post-xxxxx
$ oc logs -n clusters-sub siteconfig-post-xxxxxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果日志指出错误,请更正条件,并将更正的
SiteConfig或PolicyGenTemplate推送到 Git 存储库。
19.17.2. 验证策略 CR 的生成 复制链接链接已复制到粘贴板!
ArgoCD 在与创建它们的 PolicyGenTemplate 相同的命名空间中生成策略自定义资源 (CR)。相同的故障排除流程适用于从 PolicyGenTemplates 生成的所有策略 CR,无论它们是通用、组还是站点。
要检查策略 CR 的状态,请输入以下命令:
export NS=<namespace>
$ export NS=<namespace>
oc get policy -n $NS
$ oc get policy -n $NS
返回的输出会显示预期的策略打包 CR 集合。如果没有返回对象,请使用以下步骤对 SiteConfig 到策略 CR 的 ArgoCD 管道流进行故障排除。
流程
检查
PolicyGenTemplate到 hub 集群的同步:oc get policygentemplate -A
$ oc get policygentemplate -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者
oc get policygentemplate -n $NS
$ oc get policygentemplate -n $NSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有同步
PolicyGenTemplate,会出现以下情况之一:集群应用程序无法将 CR 从 Git 存储库同步到 hub。使用以下命令验证以下内容:
oc describe -n openshift-gitops application clusters
$ oc describe -n openshift-gitops application clustersCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
Status: Synced并且Revision:是推送到订阅的存储库的提交的 SHA。- 预同步 hook 失败,可能是因为拉取容器镜像失败。检查 ArgoCD 仪表板,了解 clusters 应用程序中预同步作业的状态。
确保策略已复制到集群命名空间中。当 ACM 识别策略应用到
ManagedCluster时,ACM 将策略 CR 对象应用到集群命名空间:oc get policy -n <cluster_name>
$ oc get policy -n <cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ACM 在此处复制所有适用的通用、组和站点策略。策略名称为
<policyNamespace>和<policyName>。检查放置规则中是否有没有复制到集群命名空间中的策略。这些策略的
PlacementRule中的matchSelector应该与ManagedCluster上的标签匹配:oc get placementrule -n $NS
$ oc get placementrule -n $NSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 记录缺少的 common、group 或 site 策略的
PlacementRule名称:oc get placementrule -n $NS <placmentRuleName> -o yaml
oc get placementrule -n $NS <placmentRuleName> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
status decisions值应包含您的集群名称。 spec 中
matchSelector的键值应与受管集群上的标签匹配。检查ManagedCluster上的标签:oc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jqoc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
确保所有策略都合规:
oc get policy -n $CLUSTER
oc get policy -n $CLUSTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 Namespace、OperatorGroup 和 Subscription 策略兼容,但 Operator 配置策略不兼容,则 operator 可能不会安装。