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 -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者
oc get siteconfig -n clusters-sub
$ oc get siteconfig -n clusters-sub
Copy 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 clusters
Copy 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-post
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果成功,返回的输出表示
succeeded: 1
。 - 如果作业失败,ArgoCD 会重试它。在某些情况下,第一次通过将失败,第二次通过将指示作业通过。
-
如果成功,返回的输出表示
检查 post hook 任务中的错误:
oc get pod -n clusters-sub
$ oc get pod -n clusters-sub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意
siteconfig-post-xxxxx
pod 的名称:oc logs -n clusters-sub siteconfig-post-xxxxx
$ oc logs -n clusters-sub siteconfig-post-xxxxx
Copy 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 -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者
oc get policygentemplate -n $NS
$ oc get policygentemplate -n $NS
Copy 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 clusters
Copy 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 $NS
Copy 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 yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
status decisions
值应包含您的集群名称。 spec 中
matchSelector
的键值
应与受管集群上的标签匹配。检查ManagedCluster
上的标签:oc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jq
oc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jq
Copy 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 $CLUSTER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 Namespace、OperatorGroup 和 Subscription 策略兼容,但 Operator 配置策略不兼容,则 operator 可能不会安装。