配置minio对象存储作为argo-workflow的artifact仓库的一些笔记,默认集群环境已经安装完argo-workflow的相关组件(此过程比较简单,没有坑,直接看官方文档即可)
Helm安装部署minio
首先在helm上添加minio的仓库,然后使用helm安装命令:
1 | helm install -n argo --name argo-artifacts --set persistence.enabled=true --set persistence.enabled=true --set accessKey=myaccesskey,secretKey=mysecretkey --set service.type=NodePort --set service.port=30090 stable/minio |
创建一个k8s下NodePort形式的minio,对外暴露端口30090。
假设安装的namespace为argo,进入下一个步骤。
修改argo命名空间下的ConfigMap
在使用helm安装minio后,会在argo这个namespace底下生成一个opaque的secret,里面就是存的accessKey和secretKey。所以为了让argo-workflows在制作artifacts时能拿到调用minio的权限。
进入minio的后台界面,手动输入accessKey和secretKey,创建一个bucket,这里举例叫my-bucket,然后在argo命名空间下名字叫workflow-controller的ConfigMap上添加data字段:
1 | data: |
给命名空间下的default ServiceAccount 赋权
下面这条命令就是给argo命名空间下的default账户cluster-admin权限,创建了一个clusterrolebinding
1 | kubectl create clusterrolebinding default-admin --clusterrole=cluster-admin --serviceaccount=argo:default |
这样argo-workflows就可以通过这个default账户对集群资源做调度了。