日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Serverless Kubernetes集群中轻松运行Argo Workflow

發(fā)布時間:2024/8/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Serverless Kubernetes集群中轻松运行Argo Workflow 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

導讀

Argo是一個基于kubernetes實現(xiàn)的一個Workflow(工作流)開源工具,基于kubernetes的調度能力實現(xiàn)了工作流的控制和任務的運行。
目前阿里云容器服務ACK集群中已經支持工作流的部署和調度,這里我們介紹如果在ASK(Serverless Kubernetes)集群中使用Argo,無需預留節(jié)點資源池,即可靈活動態(tài)的運行工作流任務,并最大化節(jié)省用戶的計算成本。

前置條件:

  • 創(chuàng)建ASK集群?https://cs.console.aliyun.com/#/k8s/cluster/create/serverless
    因為argo創(chuàng)建的pod往往需要大規(guī)格cpu和mem資源,因此建議創(chuàng)建多可用區(qū)ASK集群,當一個可用區(qū)庫存不足時,后臺會在其他可用區(qū)嘗試創(chuàng)建pod,以緩解單可用區(qū)庫存不足的情況。
  • 下載ags命令行,可參考https://help.aliyun.com/document_detail/121342.html

部署argo workflow controller

# ags install# kubectl -n argo get pod NAME READY STATUS RESTARTS AGE argo-ui-5c5dbd7d75-hxqfd 1/1 Running 0 60s workflow-controller-848cf55b64-6pzc9 1/1 Running 0 60s# kubectl -n argo get configmap NAME DATA AGE workflow-controller-configmap 0 4m55s

argo默認使用docker executor api,在serverless集群中我們需要切換成k8sapi才能正常工作。

# kubectl -n argo edit configmap workflow-controller-configmap apiVersion: v1 kind: ConfigMap ... data:config: |containerRuntimeExecutor: k8sapi

運行Hello-World Workflow示例

下面我們運行Hello-World example:https://github.com/argoproj/argo/blob/master/examples/hello-world.yaml

# ags submit https://raw.githubusercontent.com/argoproj/argo/master/examples/hello-world.yaml Name: hello-world-l26sx Namespace: default ServiceAccount: default Status: Pending Created: Fri Nov 15 14:45:15 +0800 (now)# kubectl get pod NAME READY STATUS RESTARTS AGE hello-world-l26sx 0/2 Completed 0 88s# ags list NAME STATUS AGE DURATION PRIORITY hello-world-l26sx Succeeded 1m 1m 0

當我們需要使用大規(guī)格資源來運行workflow時,可以在workflow中給pod指定anntation。

注意此情況不要在container中指定大規(guī)格requests/limits,因為argo生成的pod中包含多個container,給單個container指定大規(guī)格的requests/limits會導致eci無法給pod分配匹配的資源,進而導致創(chuàng)建失敗。我們推薦給pod指定ecs規(guī)格或者cpu/mem保證pod正常運行,如下。

apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata:generateName: hello-world- spec:entrypoint: whalesaytemplates:- name: whalesaymetadata:annotations:k8s.aliyun.com/eci-instance-type : "ecs.ic5.3xlarge"container:image: docker/whalesay:latestcommand: [cowsay]args: ["hello world"]

結束

當運行結束后,可以清理workflow資源。

# ags delete hello-world-l26sx Workflow 'hello-world-l26sx' deleted# kubectl get pod No resources found.

我們可以看到,因為ASK集群天然無需管理節(jié)點資源池,所有pod按需創(chuàng)建,很好的匹配了Argo工作流的任務形態(tài),靈活動態(tài)的按需分配計算資源,更好的節(jié)省成本。


原文鏈接
本文為云棲社區(qū)原創(chuàng)內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的在Serverless Kubernetes集群中轻松运行Argo Workflow的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。