argo

argo工作流是什么

Argo Workflows是一个开源的容器本机工作流引擎,用于在Kubernetes上协调并行作业。
Argo Workflows通过Kubernetes CRD(自定义资源定义)实现。

  • 定义工作流,其中工作流中的每个步骤都是一个容器。
  • 将多步骤工作流建模为一系列任务,或者使用图形(DAG)捕获任务之间的依赖关系。
  • 使用Kubernetes上的Argo Workflow,可以在短时间内轻松运行用于计算机学习或数据处理的计算密集型作业。
  • 在Kubernetes上本地运行CI / CD管道而无需配置复杂的软件开发产品。

为什么选择Argo工作流?

  • 从头开始设计容器,而没有传统VM和基于服务器的环境的开销和限制。
  • 与云厂商无关,可以在任何Kubernetes集群上运行。
  • 在Kubernetes上轻松编排高度并行的工作。
  • Argo Workflows使一台云级超级计算机触手可及!

使用argo管理workflow

安装argo控制器

brew install argoproj/tap/argo
kubectl create namespace argo
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo/stable/manifests/install.yaml

配置serviceaccount 以运行工作流

角色,角色绑定和服务帐户

为了使Argo支持artifacts,outputs,对secret的访问等功能,它需要使用Kubernetes API与Kubernetes资源进行通信。
为了与Kubernetes API通信,Argo使用ServiceAccount进行身份验证以向Kubernetes API进行身份验证。
您可以通过将a绑定到使用来指定Argo使用哪个Role(即哪些权限)ServiceAccountRoleServiceAccountRoleBinding

然后,在提交工作流时,您可以制定argo使用哪个ServiceAccount:

argo submit --serviceaccount <name>

如果ServiceAccount未提供,则Argo将使用default ServiceAccount运行它的名称空间中的from,默认情况下,该名称空间几乎总是没有足够的特权。

授予管理员权限

就本演示而言,我们将授予default ServiceAccountadmin特权(即,将admin Role绑定到当前命名空间的default ServiceAccount):

请注意,这将向当前命名空间的default ServiceAccount授予管理员特权,因此您将只能在该名称空间中运行Workflows。

运行样本工作流程

argo submit --watch https://raw.githubusercontent.com/argoproj/argo/master/examples/hello-world.yaml
argo submit --watch https://raw.githubusercontent.com/argoproj/argo/master/examples/coinflip.yaml
argo submit --watch https://raw.githubusercontent.com/argoproj/argo/master/examples/loops-maps.yaml
argo list
argo get xxx-workflow-name-xxx
argo logs xxx-pod-name-xxx #from get command above

您也可以直接使用kubectl创建工作流。但是,Argo CLI提供了其他一些kubectl未提供的功能,
例如YAML验证,工作流可视化,参数传递,重试和重新提交,挂起和恢复等等。

kubectl create -f https://raw.githubusercontent.com/argoproj/argo/master/examples/hello-world.yaml
kubectl get wf
kubectl get wf hello-world-xxx
kubectl get po --selector=workflows.argoproj.io/workflow=hello-world-xxx --show-all
kubectl logs hello-world-yyy -c main

使用mino作为argo artifact存储库

安装minio

helm install argo-artifacts stable/minio \--set service.type=LoadBalancer \--set defaultBucket.enabled=true \--set defaultBucket.name=my-bucket \--set persistence.enabled=false \--set fullnameOverride=argo-artifacts--namespace=argo

暴露minioweb ui

minikube service --url argo-artifacts

编辑 workflow-controller ConfigMap以引用由Helm安装创建的服务名称
(argo-artifacts)和secret(argo-artifacts)

编辑workflow-controller ConfigMap:

kubectl edit cm -n argo workflow-controller-configmap

添加以下内容

官方文档有误 删除了config: |

data:artifactRepository: |s3:bucket: my-bucketendpoint: argo-artifacts.default:9000insecure: true# accessKeySecret and secretKeySecret are secret selectors.# It references the k8s secret named 'argo-artifacts'# which was created during the minio helm install. The keys,# 'accesskey' and 'secretkey', inside that secret are where the# actual minio credentials are stored.accessKeySecret:name: argo-artifactskey: accesskeysecretKeySecret:name: argo-artifactskey: secretkey

运行使用artifact的流程

argo submit https://raw.githubusercontent.com/argoproj/argo/master/examples/artifact-passing.yaml

访问Argo UI

minikube service -n argo --url argo-ui

扫描关注我:

使用argo构建云原生workflow相关推荐

  1. 推荐3款 Docker 认证的实用免费插件,帮助您快速构建云原生应用程序!

    出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一.三.五,与您不见不散! Docker 认证技术项目(Docker Certified Technology Program)是为 ...

  2. CDEC2021 | 智领云CTO宋文欣:构建云原生数据中台,赋能合作伙伴

    近日,以"抢占五新生态"为主题的CDEC2021中国数字智能生态大会暨第十四届中国软件渠道大会(深圳站)在深圳瑞吉酒店举行,本次活动由中国软件网.海比研究院.中国软件行业协会联合主 ...

  3. Aggregated APIServer 构建云原生应用最佳实践

    作者 张鹏,腾讯云容器产品工程师,拥有多年云原生项目开发落地经验.目前主要负责腾讯云 TKE 云原生 AI 产品的开发工作. 谢远东,腾讯高级工程师,Kubeflow Member.Fluid(CNC ...

  4. 阿里云EDAS 3.0重磅发布,无侵入构建云原生应用

    发布会传送门 进入直播间还有好礼等你拿! EDAS产品免费试用:https://www.aliyun.com/activity/middleware/edaspromotiononmay 首届云原生编 ...

  5. 基于 WeDataSphere Prophecis 与 KubeSphere 构建云原生机器学习平台

    KubeSphere 开源社区的小伙伴们,大家好.我是微众银行大数据平台的工程师周可,接下来给大家分享的是基于 WeDataSphere 和 KubeSphere 这两个开源社区的产品去构建一个云原生 ...

  6. 华为云构建云原生DevSecOps平台,保障软件供应链全流程安全可信

    摘要:面临网络安全挑战的大环境下,华为云构筑的云原生DevSecOps平台,打造了创新可控的安全服务,助力企业软件供应链全生命周期安全. 2022年8月13日,"2022中国DevOps社区 ...

  7. 降低 Spark 计算成本 50.18 %,使用 Kyligence 湖仓引擎构建云原生大数据底座,为计算提速 2x

    2023 中国开源未来发展峰会于 5 月 13 日成功举办.在大会开源原生商业分论坛,Kyligence 解决方案架构高级总监张小龙发表<云原生大数据底座演进 >主题演讲,向与会嘉宾介绍了 ...

  8. 青云科技雷万钧:使用 Notification Manager 构建云原生通知系统

    嘉宾 | 雷万钧    整理 | 小雨青年 出品 |CSDN云原生 2022 年 4 月 26 日,在 CSDN 云原生系列在线峰会第 2 期"可观测性与 APM 峰会"上,青云科 ...

  9. 构建云原生架构版图:安信证券服务化平台实践

    1. 建设之初的思考 互联网应用的海量用户.快速迭代.不间断服务和流量突增等业务特征促进其技术架构从传统集中式到分布式 SOA 和微服务 [1] 架构方向逐步演进.随着敏态业务的逐渐增多,对业务连续性 ...

最新文章

  1. 编写矩形类 计算矩形面积
  2. 安装batocera-linux教程_利用Grub2Win安装Batocera+Windows7双系统甚至多系统实战教程
  3. matlab神经网络 时间序列,请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?...
  4. 百度实名制后如何进行网站优化?
  5. 怎么学python-结合学习经历,谈一谈如何学习Python
  6. 设计模式之访问者(visitor)模式
  7. 【C 语言】指针数据类型 ( 指针类型变量 与 指针指向的内存块 概念区别 | 指针赋值 | 指针运算 | 内存赋值 | 内存取值 | 内存修改注意事项 )
  8. linux自动挂载windows磁盘
  9. Android BGradualProgress 多种渐变、直角or弧角、进度条、加载条
  10. MyCat分布式数据库集群架构工作笔记0019---高可用_单表存储千万级_海量存储_水平分表
  11. 上海计算机应用基础自考上机,上海2012年自考《计算机应用基础》上机考核大纲...
  12. 保研复习整理——通信原理
  13. CMD命令查看IP地址
  14. 自适应滤波器 | 时域ALE算法
  15. 设计测试用例需要注意的点
  16. Filed II 自定义二维曲面超声换能器阵列
  17. 顶尖文案app_17个文案网站 5款短视频软件,自媒体人必备,直接拿走不谢
  18. 用芯弹一首《大加洛普舞曲》:从AI-ISP,透视vivo的双芯之路
  19. android之媒体硬解OMX的实现
  20. 如何使用Arthas查看类变量值

热门文章

  1. 1.3某地区人口热力图制作
  2. Android小知识汇总
  3. 当网络虚拟化不足以解决问题时
  4. 吴伯凡-认知方法论-找到自己的洞穴
  5. MySQL安装后无法登录——Access denied for user 'root'
  6. 倾斜摄影的无人机拍摄的注意事项
  7. 什么是TypeReference?
  8. flv.js 播放多个rtsp流【二】
  9. 师创杯”山东理工大学第九届ACM程序设计竞赛(网络同步赛)--I皮卡丘的梦想2
  10. 【linux】模块化实践之存储专题