问题标签 [argo-workflows]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - KubeFlow,处理大型动态数组和具有当前大小限制的 ParallelFor
在过去的一天里,我一直在努力为这种方式找到一个好的解决方案,并想听听你的想法。
我有一个接收大型动态 JSON 数组(仅包含字符串化对象)的管道,我需要能够为该数组中的每个条目创建一个 ContainerOp(使用 dsl.ParallelFor)。
这适用于小输入。
现在,由于 argo 和 Kubernetes 的管道输入参数大小限制,数组作为文件 http url 出现(或者这是我从当前打开的问题中理解的),但是 - 当我尝试从一个 Op 读取文件以使用作为 ParallelFor 的输入,我遇到了输出大小限制。
对于这种情况,什么是好的和可重用的解决方案?
谢谢!
kubernetes - 使用 Argo 进行微服务部署
我想使用 CI/CD 工具将我的微服务部署到 kubernetes 集群中。我刚刚开始学习 CI/CD 的概念,并想创建一个环境来看看它在实践中是如何工作的。
根据我的理解,部署应该如下所示:
如上所述,我想将微服务部署到 K8S 集群中,我找到了https://argoproj.github.io。我想,这就是我要找的。
Argo 提供了不同的工具,例如 Workflow,但是 Workflow 有什么用呢?当我使用 Workflow 时,不需要 ArgoCD 吗?或者在 ArgoCD 中使用 Workflow?
kubernetes - Argo 工作流程中的动态“扇入”
Argo 允许基于先前步骤的输出动态生成并行工作流步骤。
此处提供了此动态工作流生成的示例:https ://github.com/argoproj/argo-workflows/blob/master/examples/loops-param-result.yaml
我正在尝试使用最终的“扇入”步骤创建一个类似的工作流程,该步骤将从动态创建的并行步骤中读取输出。这是一个尝试:
我能够提交此工作流程,并且它运行成功。不幸的是,最后fan-in
一步的输出如下所示:
输入numbers
参数的值没有被插值。关于如何使它工作的任何想法?
go - 将 yaml 文件注入 Argo 工作流程步骤的最佳方法是什么?
概括:
我们有一个 golang 应用程序,可以根据请求将 Argo 工作流提交到 kubernetes 集群。我想将 yaml 文件传递给其中一个步骤,我想知道这样做的选项是什么。
环境:
- 阿尔戈:v2.4.2
- K8s:1.13.12-gke.25
额外细节:
最终,我想将此文件传递给测试步骤,如下例所示:
此步骤中使用的图像将具有一个 python 脚本,该脚本接收该文件的路径然后访问它。
要使用 golang 提交 Argo 工作流,我们使用以下依赖项:
- https://github.com/argoproj/argo-workflows/tree/master/pkg/client
- https://github.com/argoproj/argo-workflows/tree/master/pkg/apis
谢谢你。
kubernetes - 如何将 argo 工作流程与 argo cd 结合起来?
我想在我的 K8S 集群上部署Keycloak 。另外,使用Keycloack的前提是有数据库,所以我打算使用postgresql。
在部署 Keycloak 之前,数据库必须启动并运行。对于这样的场景,我认为,我应该使用Argo Workflow。
我的问题是,在数据库启动并通过 Argo Workflow 运行后,如何触发 ArgoCD?或者如何将 Argo Workflow 与 ArgoCD 结合起来?
argo-workflows - Argo 示例工作流卡在挂起状态
我遵循 Argo Workflow 的入门文档。一切都很顺利,直到我按照4. Run Sample Workflows中所述运行第一个示例工作流程。工作流只是停留在挂起状态:
这里提到了集合节点上的污点可能是问题,所以我取消了主节点的污点:
然后我删除了挂起的工作流程并重新提交,但它再次陷入挂起状态。
新提交的也卡住的工作流的详细信息:
在尝试获取工作流控制器日志时,出现以下错误:
相应工作流控制器 pod 的详细信息:
我运行 Argo 2.8:
我检查了集群状态,它看起来不错:
至于 K8s 集群安装,我使用 Vagrant 创建它,如下所述,唯一的区别是:
- libvirt 作为提供者
- 较新版本的 Ubuntu:generic/ubuntu1804
- 较新版本的印花布:v3.14
知道为什么工作流会卡在挂起状态以及如何解决它吗?
istio - 仅为命名空间中的指定 pod 启用 Istio 自动注入
我们在集群中设置并运行了 Istio,默认情况下启用自动注入,并在少数命名空间中启用。现在我们想对其他一些命名空间中的一些pod进行自动注入,但是遇到了一个问题,如果没有为整个命名空间启用,似乎不可能对指定的pod进行自动注入。我们使用 Argo 工作流自动创建 pod,因此我们sidecar.istio.io/inject: "true"
在 Argo 工作流中指定,以便生成的 pod 在其元数据中显示带有此注释:
不幸的是,Istio 仍然不会注入 sidecar,除非命名空间的istio-injection
标签明确设置为enabled
,从而将 sidecar 添加到在那里运行的所有 pod。
我们也不能使用手动注入,因为 Pod 是由 Argo 服务自动创建的,并且我们希望 Sidecar 仅根据工作流定义注入特定的 Pod。
那么有没有可能的方法来克服这个问题呢?谢谢!
完整的 Argo 工作流程:
kubernetes - 如何从另一个现有 pod 创建一个新的 Kubernetes pod?
我有一个 Kubernetes pod,它下载多种类型的文件(比如说X
,Y
和Z
),我有一些处理脚本(每个都在一个 docker 映像中),它们对一个或多个文件感兴趣(比如说processor_X_and_Y
,processor_X_and_Z
和processor_Z
)。
第一个 pod 一直在运行,我需要根据文件类型下载文件后创建一个处理器 pod,例如如果下载器下载了一个类型为 的文件Z
,我需要创建一个新的实例processor_X_and_Z
和一个新的实例processor_Z
。
我目前的想法是使用Argo 工作流,方法是为每个处理器从 1 步创建一个简单的工作流,然后通过从下载器 pod调用Argo REST API来启动合适的工作流。因此,我已经实现了我的目标和我的系统的自动缩放。
我的问题是 Kubernetes 中是否有另一个更简单的引擎或服务,我可以使用它从另一个 pod 创建一个新产品,而无需使用这个工作流引擎?
scalability - 如何解决 Argo 输出参数大小限制?
我有一个遍历 JSON 数组的 Argo 工作流。当列表变得太大时,我会收到如下错误:
或者,在较新版本的 Argo 中:
如何在不达到大小限制的情况下遍历这个大型 JSON 数组?
我的工作流程看起来有点像这样,但 JSON 数组更大:
kubernetes - Kubernetes API 服务器响应超时
看到我们的一些工作流作业因连接超时错误而失败。我们正在使用 Argo Workflow manager 来运行作业。我们观察到 Argo 正在失去与其工作流的连接,并且我们相互依赖的工作流模式因以下错误而失败。所以当我检查 Kubernetes API 服务器日志时,我看到了这些错误。有什么办法可以增加 Kubernetes API 服务器非运行作业的任何超时设置?
错误:
客户端版本:v1.17.2
服务器版本:v1.17.2
主机操作系统: Centos 7.7
CNI: 编织
谢谢, CS