【问题标题】:Why doesn't this argo workflow run?为什么这个 argo 工作流程不运行?
【发布时间】:2021-09-07 21:04:35
【问题描述】:

我正在尝试配置我的 Argo 工作流程。

我知道如何纠正错误,但如果它们不运行,我该如何调试?

我在 Ubuntu 20.04 上运行 Argo 3.0.10

argo: v3.0.10
  BuildDate: 2021-08-18T23:41:44Z
  GitCommit: 0177e73b962136200517b7f301cd98cfbed02a31
  GitTreeState: clean
  GitTag: v3.0.10
  GoVersion: go1.16.6
  Compiler: gc
  Platform: linux/amd64

我使用以下命令应用以下 YAML

argo 提交 test.yaml --watch:

{
   "apiVersion": "argoproj.io/v1alpha1",
   "kind": "Workflow",
   "metadata": {
      "annotations": {
         "argo": "workflows"
      },
      "generateName": "hello-world-",
      "labels": {
         "workflows.argoproj.io/archive-strategy": "false"
      },
      "namespace": "argo"
   },
   "spec": {
      "entrypoint": "entrypoint",
      "parallelism": 3,
      "podGC": {
         "strategy": "OnWorkflowSuccess"
      },
      "securityContext": {
         "fsGroup": 2000,
         "runAsGroup": 3000,
         "runAsNonRoot": true,
         "runAsUser": 1000
      },
      "serviceAccountName": "argouser",
      "templates": [
         {
            "container": {
               "args": [
                  "hello world"
               ],
               "command": [
                  "cowsay"
               ],
               "image": "docker/whalesay:latest",
               "resources": {
                  "limits": {
                     "cpu": "100m",
                     "memory": "32Mi"
                  }
               }
            },
            "name": "entrypoint"
         }
      ],
      "ttlStrategy": {
         "secondsAfterSuccess": 5
      }
   }
}

据我所知,从未创建过 pod,也没有记录它们,但是,工作流是存在的。这是工作流的 kubectl describe 输出:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  annotations:
    argo: workflows
  creationTimestamp: "2021-09-07T20:48:37Z"
  generateName: hello-world-
  generation: 1
  labels:
    workflows.argoproj.io/archive-strategy: "false"
  name: hello-world-p6h4k
  namespace: argo
  resourceVersion: "14801149"
  uid: ee28ae8d-970e-47c6-83ee-fcdc6db44c39
spec:
  arguments: {}
  entrypoint: entrypoint
  parallelism: 3
  podGC:
    strategy: OnWorkflowSuccess
  securityContext:
    fsGroup: 2000
    runAsGroup: 3000
    runAsNonRoot: true
    runAsUser: 1000
  serviceAccountName: argouser
  templates:
  - container:
      args:
      - hello world
      command:
      - cowsay
      image: docker/whalesay:latest
      name: ""
      resources:
        limits:
          cpu: 100m
          memory: 32Mi
    inputs: {}
    metadata: {}
    name: entrypoint
    outputs: {}
  ttlStrategy:
    secondsAfterSuccess: 5
status:
  finishedAt: null
  startedAt: null

并且“错误”消息是:

Name:                hello-world-p6h4k
Namespace:           argo
ServiceAccount:      argouser
Status:              Pending
Created:             Tue Sep 07 20:48:37 +0000 (now)
Progress:
FATA[2021-09-07T20:48:37.186Z] workflows.argoproj.io "hello-world-p6h4k" not found

【问题讨论】:

  • 您能否发布 1) 您正在运行的 Argo Workflows 的版本,2) 您提交的工作流的原始 YAML,以及 3) 您用于提交工作流的确切命令并检查其状态?
  • @MichaelCrenshaw 谢谢。我已经在上面发布了这些信息。
  • 鉴于describe 有效,我不确定如何解释“未找到”错误。您是否尝试过跟进 argo list 和/或阅读工作流控制器日志?

标签: argo-workflows


【解决方案1】:

感谢@Michael Crenshaw 的提示!

我查看了工作流控制器日志,工作流确实运行成功,但没有输出任何 argo 日志,工作流仍列为待处理。我仍在寻找正确的配置,所以我不确定这些消息是如何不一致的。如果我找到答案,我会在这里发布。

【讨论】:

  • 试试kubectl get po -n argo。如果有一个名称与该工作流相似的 pod,请描述它。事件中可能有提示。例如,ServiceAccount 可能没有足够的权限。
  • 我写了一个可能有帮助的东西:dev.to/crenshaw_dev/how-to-debug-an-argo-workflow-31ng
  • @Michael Crenshaw - 不错的教程 :) kubectl get po -n argo 下没有列出关联的 pod。但是,现在我考虑一下,这可能是因为如果成功,我会自行清理工作流程。为了以后的调试,我必须记住这一点
  • 谢谢!是的,清理可能会摆脱豆荚......但如果我理解正确,工作流永远不会离开待处理状态,所以清理东西(似乎只为成功的工作流触发)会删除豆荚似乎​​很奇怪。
  • 我目前的假设是我的权限设置不允许更新 CLI。您知道这是否是需要授予的单独权限,如果是,可能是什么?
【解决方案2】:

我认为“错误”消息的原因是省略了 cli 命令的命名空间,请尝试以下操作:

argo submit test.yaml --watch -n argo

然后您可以检查您的 Workflow CRD 对象,它包含错误消息。可能您需要在您的test.yaml 中设置正确的serviceAccountNamenamespace

【讨论】:

  • Argo 可以配置为处理任何命名空间中的工作流。默认情况下,它将使用提交工作流的命名空间中的默认服务帐户。但是,是的,在某些情况下,指定这些将解决工作流程中断的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 2022-06-10
  • 2020-08-29
  • 1970-01-01
  • 2021-07-14
  • 2018-03-13
  • 1970-01-01
相关资源
最近更新 更多