Argo workflows 归档以及 GC 功能-程序员宅基地

技术标签: 数据库  

归档

Argo Workflow 支持将工作流执行记录(Workflow)的信息存储到 PostgreSQL 或 MySQL 中,以达到更长久地保存执行记录但又不会影响到 Kubernetes 集群的性能。

这里,给出一个归档( Archive )数据到 PostgreSQL 的配置方法:

首先,安装 PostgreSQL 。这里采用 Helm Chart 的方式来安装:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
cat > values.yaml <<EOF
auth:
  enablePostgresUser: true
  postgresPassword: "StrongPassword"
  username: "root"
  password: "root"
  database: "app_db"
EOF
helm install postgresql-dev -f values.yaml bitnami/postgresql

Argo Workflows 会以 Secret 的方式读取数据库的用户名、密码,下面是创建 Secret 的命令:

kubectl create secret generic --from-literal=username=root --from-literal=password=root argo-postgres-config -n argo

然后,参考下面的 ConfigMap 启用工作流的归档功能:

apiVersion: v1
data:
  persistence: |
    archive: true
    postgresql:
      host: postgresql-dev.argocd.svc
      port: 5432
      database: app_db
      tableName: argo_workflows
      userNameSecret:
        name: argo-postgres-config
        key: username
      passwordSecret:
        name: argo-postgres-config
        key: password
kind: ConfigMap
metadata:
  name: workflow-controller-configmap
  namespace: argo

上面的配置步骤都完成,执行工作流后,我们可以在 UI 界面左侧菜单上看到归档的执行记录。也可以通过数据库命令行客户端连接数据库,查看数据的表记录信息:

export POSTGRES_PASSWORD=root
kubectl run postgresql-dev-client --rm --tty -i --restart='Never' --namespace default --image docker.io/bitnami/postgresql:14.1.0-debian-10-r80 --env="PGPASSWORD=$POSTGRES_PASSWORD" --command -- psql --host postgresql-dev.argocd.svc -U root -d app_db -p 5432

下面是一些 PostgreSQL 命令行客户端的参考:

\dt                                                   # 查看当前数据库中的表
select name,phase from argo_archived_workflows;       # 查看已归档的工作流执行记录

你会看到类似如下的输出:

app_db=> \dt
                    List of relations
 Schema |              Name              | Type  | Owner
--------+--------------------------------+-------+-------
 public | argo_archived_workflows        | table | root
 public | argo_archived_workflows_labels | table | root
 public | argo_workflows                 | table | root
 public | schema_history                 | table | root
(4 rows)

app_db=> select name,phase from argo_archived_workflows;
     name     |   phase
--------------+-----------
 plugin-pl6rx | Succeeded
 plugin-8gs7c | Succeeded

GC

Argo Workflows 有个工作流执行记录(Workflow)的清理机制,也就是 Garbage Collect(GC)。GC 机制可以避免有太多的执行记录, 防止 Kubernetes 的后端存储 Etcd 过载。

我们可以在 ConfigMap 中配置期望保留的工作执行记录数量,这里支持为不同状态的执行记录设定不同的保留数量。配置方法如下:

apiVersion: v1
data:
  retentionPolicy: |
    completed: 3
    failed: 3
    errored: 3
kind: ConfigMap
metadata:
  name: workflow-controller-configmap
  namespace: argo

需要注意的是,这里的清理机制会将多余的 Workflow 资源从 Kubernetes 中删除。如果希望能更多历史记录的话,建议启用并配置好归档功能。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014249394/article/details/128463036

智能推荐

logging模块使用_logging模块ch在生产可以打开吗-程序员宅基地

文章浏览阅读159次。最详细的还是 官方文档最简单的使用# -*- coding:utf-8 -*-import logginglogging.debug('debug message')logging.info('info message')logging.warn('warn message')logging.error('error message')logging.critical('crit..._logging模块ch在生产可以打开吗

千峰web前端入门html+css笔记(一)_千峰web前端开发-程序员宅基地

文章浏览阅读933次。标题描述_千峰web前端开发

深入浅出计算机组成原理:FPGA、ASIC和TPU(上)-计算机体系结构的黄金时代(第32讲)...-程序员宅基地

文章浏览阅读984次。一、引子过去很长一段时间里,大家在讲到高科技、互联网、信息技术的时候,谈的其实都是“软件”。从1995年微软发布Windows 95开始,高科技似乎就等同于软件业和互联网。著名的风险投资基金AndreessenHorowitz的合伙人Marc Andreessen,在2011年发表了一篇博客,声称“Software is Eating the World”。Marc Andree..._计算机组成原理 fpga

vue-cli2,vue-cli3(vue脚手架)超详细教程_vue2+cli3-程序员宅基地

文章浏览阅读3.8k次,点赞33次,收藏30次。文章目录vue-cli脚手架Node.js环境安装vue-cli的安装npm,cnpm介绍安装脚手架用脚手架生成项目目录vue-cli脚手架顾名思义,脚手架就是用来协助,配合,帮助构建一个项目的。使用vue-cli仅需5分钟就可以搭建一个完整的Vue.js应用,相较于人工操作,具有安全,高效的特点。vue-cli与平台无关,功能更加齐全。无论是预编译模板,注入依赖,还是模拟生产环境等功能,vue-cli都具备,而且占用内存少,更高效,运行速度非常快。Node.js环境安装要安装Vue.js脚手架_vue2+cli3

华为OD机试 - 最小循环子数组(Java & JS & Python & C)-程序员宅基地

文章浏览阅读2.6k次,点赞4次,收藏13次。已支持(Java & JS & Python & C),考察:KMP算法,前缀表,最长相同前后缀,最小重复子串问题_最小循环子数组

oracle 入门_Oracle Container Cloud服务入门-程序员宅基地

文章浏览阅读254次。oracle 入门 Oracle容器云服务是Oracle进入托管容器服务世界的入口。 现有很多选项: 适用于AWS或Azure的Docker 亚马逊弹性容器服务 Google容器引擎 Azure容器服务 Mesosphere的DC / OS 红帽OpenShift 该博客将说明如何开始使用Oracle Container Cloud Service。 从托管容器..._oracle container

随便推点

windows以G为单位整数分区公式(精准)_win7分盘100g公式-程序员宅基地

文章浏览阅读572次。下面是js的脚本,100G为例:// JS var num = 100Math.ceil(Math.ceil(num*1024/7.84423828125)*7.84423828125)使用方法,只要有浏览器就行,打开浏览器进入开发者模式F12,选择控制台将上面的代码粘贴到控制台中,红字部分为100G应分配的M数.如需其它容量大小自行修改100为对应的值..._win7分盘100g公式

新书推荐|Windows黑客编程技术详解-程序员宅基地

文章浏览阅读70次。《Windows黑客编程技术详解》面向对计算机系统安全开发感兴趣,或者希望提升安全开发水平的读者,以及从事恶意代码分析研究的安全人员。理论技术与实战操作相辅相成,凸显“道与术”庖丁解牛式剖析Windows用户层和内核层黑客技术原理代码兼容性高,支持Windows 7到Windows 10全平台系统近年来,全球大规模爆发勒索病毒和挖..._demongan

【UE4】制作加载图片Splash_ue4 splash image-程序员宅基地

文章浏览阅读5.2k次,点赞7次,收藏18次。很多小伙伴都会有疑惑,有的大神可以有自己独特的加载界面,其实这个编辑过程很简单,今天带大家来一起Try一Try! 长话短说,如果我们不做改变,每一个编辑器加载时的界面都是一样的,那我们怎么样去根据自己的喜好来改变这个logo呢?1.打开虚幻编辑器,项目设置2.项目设置中找到这个更改界面,然后把鼠标放在logo上,我们可以看到这个图片是虚幻自带的文件中原本就默认存在的,那我们就..._ue4 splash image

Acwing算法提高课_acwing提高课-程序员宅基地

文章浏览阅读154次。90%的dp问题都能转化为最短路问题,拓扑图可以转化为dp问题。记住模型,到相似题目就会有更清晰的思路,不会到无从下手。_acwing提高课

报泰山学堂计算机条件,山东大学泰山学堂遭质疑 课程不合理致学生退学?-程序员宅基地

文章浏览阅读1.6k次。品牌观察网讯:1.88米的个头,普通话里有明显的山西口音,这个19岁的小伙子就是最近主动退出山东大学“泰山学堂”的马振军同学。别的同学想上“泰山学堂”都考不上,经过层层选拔好不容易考上的他却退出了。他为什么退出?11月9日下午,记者来到位于高新区的山东大学软件园校区,对他进行了专门采访。谈原因退出是因为不适应上两年基础课,时间太长记者:得知被“泰山学堂”录取是啥感觉?马振军:感觉挺兴奋的、也挺幸运..._山东大学软件学院能考泰山学堂数学学堂吗

docker部署rocketmq,本地应用访问不到broker解决办法_rocketmq控制面板没有broker-程序员宅基地

文章浏览阅读2.4k次。docker部署rocketmq,本地应用访问不到broker解决办法参考博客:Docker部署RocketMQ.最近按照这个博客在docker上部署了rocketmq,docker运行在虚拟机上,在windows上跑的测试程序连接上了nameserver但连接不上broker。本地代码如下:public class RocketMQSendMessage { //发送消息 public static void main(String[] args) throws Exception _rocketmq控制面板没有broker