故障排除工具¶
该文件介绍了如何使用 argocd admin
子命令来简化 Argo CD 设置的定制和连接问题的故障排除。
设置¶
Argo CD 提供了多种自定义系统行为的方法,并有大量设置。 在多个用户在生产中使用的 Argo CD 上修改设置可能很危险。 在应用设置之前,您可以使用 argocd admin
子命令来确保设置有效,并且 Argo CD 按预期运行。
argocd admin settings validate` 命令执行基本设置验证,并打印每个设置组的简短摘要。
差异化定制
扩散自定义 允许从扩散过程中排除某些资源字段。 扩散自定义在 argocd-cm
configmaps 的 resource.customizations
字段中配置。
下面的 argocd admin
命令将打印指定的 ConfigMap 中排除在 diffing 之外的字段信息。
argocd admin settings resource-overrides ignore-differences ./deploy.yaml --argocd-cm-path ./argocd-cm.yaml
健康评估
Argo CD 为多个 Kubernetes 资源提供了内置的 [health assessment](./health.md),可通过在 Lua 中编写自己的健康检查来进一步定制。健康检查在 argocd-cm
ConfigMap 的 resource.customizations
字段中配置。
下面的 argocd admin
命令使用在指定的 configmaps 中配置的 Lua 脚本评估资源健康状况。
argocd admin settings resource-overrides health ./deploy.yaml --argocd-cm-path ./argocd-cm.yaml
资源行动
资源操作允许配置命名的 Lua 脚本来执行资源修改。
下面的 argocd admin
命令使用指定 ConfigMap 中配置的 Lua 脚本执行操作,并打印被引用的修改。
argocd admin settings resource-overrides run-action /tmp/deploy.yaml restart --argocd-cm-path /private/tmp/argocd-cm.yaml
下面的 argocd admin
命令使用在指定的 ConfigMap 中配置的 Lua 脚本列出了指定资源的可用操作。
argocd admin settings resource-overrides list-actions /tmp/deploy.yaml --argocd-cm-path /private/tmp/argocd-cm.yaml
集群证书¶
如果您使用集群凭据手动创建了 Secret,并尝试需要排除连接问题,则 argocd admin 集群 kubeconfig
非常有用。 在这种情况下,建议使用以下步骤:
1 SSH 进入 [argocd-application-controller] pod。
kubectl exec -n argocd -it \
$(kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-application-controller -o jsonpath='{.items[0].metadata.name}') bash
2 使用 argocd admin cluster kubeconfig
命令从配置的 Secret 导出 kubeconfig 文件:
argocd admin cluster kubeconfig https://<api-server-url> /tmp/kubeconfig --namespace argocd
3 使用 kubectl
获取有关连接问题的更多详细信息,修复问题并将更改应用回 secret:
export KUBECONFIG=/tmp/kubeconfig
kubectl get pods -v 9