技术标签: 数据库
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
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 中删除。如果希望能更多历史记录的话,建议启用并配置好归档功能。
文章浏览阅读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在生产可以打开吗
文章浏览阅读933次。标题描述_千峰web前端开发
文章浏览阅读984次。一、引子过去很长一段时间里,大家在讲到高科技、互联网、信息技术的时候,谈的其实都是“软件”。从1995年微软发布Windows 95开始,高科技似乎就等同于软件业和互联网。著名的风险投资基金AndreessenHorowitz的合伙人Marc Andreessen,在2011年发表了一篇博客,声称“Software is Eating the World”。Marc Andree..._计算机组成原理 fpga
文章浏览阅读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
文章浏览阅读2.6k次,点赞4次,收藏13次。已支持(Java & JS & Python & C),考察:KMP算法,前缀表,最长相同前后缀,最小重复子串问题_最小循环子数组
文章浏览阅读254次。oracle 入门 Oracle容器云服务是Oracle进入托管容器服务世界的入口。 现有很多选项: 适用于AWS或Azure的Docker 亚马逊弹性容器服务 Google容器引擎 Azure容器服务 Mesosphere的DC / OS 红帽OpenShift 该博客将说明如何开始使用Oracle Container Cloud Service。 从托管容器..._oracle container
文章浏览阅读572次。下面是js的脚本,100G为例:// JS var num = 100Math.ceil(Math.ceil(num*1024/7.84423828125)*7.84423828125)使用方法,只要有浏览器就行,打开浏览器进入开发者模式F12,选择控制台将上面的代码粘贴到控制台中,红字部分为100G应分配的M数.如需其它容量大小自行修改100为对应的值..._win7分盘100g公式
文章浏览阅读70次。《Windows黑客编程技术详解》面向对计算机系统安全开发感兴趣,或者希望提升安全开发水平的读者,以及从事恶意代码分析研究的安全人员。理论技术与实战操作相辅相成,凸显“道与术”庖丁解牛式剖析Windows用户层和内核层黑客技术原理代码兼容性高,支持Windows 7到Windows 10全平台系统近年来,全球大规模爆发勒索病毒和挖..._demongan
文章浏览阅读5.2k次,点赞7次,收藏18次。很多小伙伴都会有疑惑,有的大神可以有自己独特的加载界面,其实这个编辑过程很简单,今天带大家来一起Try一Try! 长话短说,如果我们不做改变,每一个编辑器加载时的界面都是一样的,那我们怎么样去根据自己的喜好来改变这个logo呢?1.打开虚幻编辑器,项目设置2.项目设置中找到这个更改界面,然后把鼠标放在logo上,我们可以看到这个图片是虚幻自带的文件中原本就默认存在的,那我们就..._ue4 splash image
文章浏览阅读154次。90%的dp问题都能转化为最短路问题,拓扑图可以转化为dp问题。记住模型,到相似题目就会有更清晰的思路,不会到无从下手。_acwing提高课
文章浏览阅读1.6k次。品牌观察网讯:1.88米的个头,普通话里有明显的山西口音,这个19岁的小伙子就是最近主动退出山东大学“泰山学堂”的马振军同学。别的同学想上“泰山学堂”都考不上,经过层层选拔好不容易考上的他却退出了。他为什么退出?11月9日下午,记者来到位于高新区的山东大学软件园校区,对他进行了专门采访。谈原因退出是因为不适应上两年基础课,时间太长记者:得知被“泰山学堂”录取是啥感觉?马振军:感觉挺兴奋的、也挺幸运..._山东大学软件学院能考泰山学堂数学学堂吗
文章浏览阅读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