Board logo

标题: 工作流workflow任务调度工具argo(2) [打印本页]

作者: look_w    时间: 2019-5-16 14:35     标题: 工作流workflow任务调度工具argo(2)

argo的特点

1、argo是基于容器的,不需要传统的虚拟机机系统和环境
2、argo是云无关的,可以在任意的k8s集群中运行
3、argo能定制计算资源,让云端的资源在我们的掌握之中
谁在使用argo

Adobe
BlackRock
CoreFiling
Cyrus Biotechnology
Datadog
Gladly
Google
Interline Technologies
Intuit
Localytics
NVIDIA

#开始使用
准备环境

1、需要运行在Kubernetes 1.9或者1.9+的版本之上
2、下载有kubectl命令行客户端
3、配置好kubeconfig文件(配置文件默认路径~/.kube/config)

详情参考文章:
kubernetes—CentOS7安装kubernetes1.11.2图文完整版

##下载安装argo

Mac环境:

brew install argoproj/tap/argo


Linux环境

curl -sSL -o /usr/local/bin/argo https://github.com/argoproj/argo ... .0/argo-linux-amd64
chmod +x /usr/local/bin/argo



安装控制器和UI

使用命令

kubectl create ns argo
kubectl apply -n argo -f https://raw.githubusercontent.co ... ifests/install.yaml



如果我们的k8s集群式运行在GKE (Google Kubernetes Engine)上的,则还需要授权账号可以创造集群的角色使用命令如下,非GKE集群不需要运行:

kubectl create clusterrolebinding YOURNAME-cluster-admin-binding --clusterrole=cluster-admin --user=YOUREMAIL@gmail.com


配置服务账户用于运行workflows

当集群是基于RBAC(Role-Based Access Control,基于角色的访问控制)时,默认账户有很多的限制,比如不能支持组件,输出等等。
执行以下命令授权默认的服务账户在默认的namespace中拥有admin的权限

kubectl create rolebinding default-admin --clusterrole=admin --serviceaccount=default:default

    1

或者你可以在提交workflow时指定服务账户,使用命令如下:

argo submit --serviceaccount <name>

    1

尝试运行argo例子

这是一个类似于helloword的小例子,使用命令如下:


argo list
argo get xxx-workflow-name-xxx
argo logs xxx-pod-name-xxx #from get command above

   

我们也可以使用kubectl命令进行workflow的提交,不过相对于argo命令来说,kubectl命令缺少了很多功能,比如yaml的验证,workflow的可视化,参数验证,重试和重新提交等等。

使用命令如下:

kubectl create -f https://raw.githubusercontent.co ... es/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




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0