argo workflows触发方式
定时触发
类似于 k8s 中的 job 和 cronjob,CronWorkflow 会定时创建 Workflow 来实现定时触发。
1 | apiVersion: argoproj.io/v1alpha1 |
类似于 k8s 中的 job 和 cronjob,CronWorkflow 会定时创建 Workflow 来实现定时触发。
1 | apiVersion: argoproj.io/v1alpha1 |
templates
,或者引用 WorkflowTemplate
和 ClusterWorkflowTemplate
。Workflow
可以引用 WorkflowTemplate
以使用其定义的步骤和任务。WorkflowTemplate
类似,但在集群范围内可用,适用于跨命名空间的工作流。Workflow
可以引用 ClusterWorkflowTemplate
,这使得模板在所有命名空间中都可用。Workflow
、WorkflowTemplate
或 ClusterWorkflowTemplate
中。templates
可以相互引用,支持复用和组合。templates
直接执行,也可以引用 WorkflowTemplate
或 ClusterWorkflowTemplate
。新建命名空间并部署项目资源
1 | kubectl create namespace argo |
默认情况下, argo workflows 服务不对外暴露服务,可以通过 LoadBalancer 或者 NodePort 类型的 Service、Ingress、Kubectl 端口转发等方式将 argo workflows 服务发布到 Kubernetes 集群外部。
由于是 vm 自建,所以选择使用 NodePort 的方式暴露服务。
1 | kubectl patch svc argo-server -n argo -p '{"spec": {"type": "NodePort"}}' |
查看随机暴露的端口
1 | root@devops:~# kubectl get svc -n argo |