Argo Workflows部署安装
·
安装部署
# Detect OS
ARGO_OS="darwin"
if [[ "$(uname -s)" != "Darwin" ]]; then
ARGO_OS="linux"
fi
# Download the binary
curl -sLO "https://github.com/argoproj/argo-workflows/releases/download/v3.7.0/argo-$ARGO_OS-amd64.gz"
# Unzip
gunzip "argo-$ARGO_OS-amd64.gz"
# Make binary executable
chmod +x "argo-$ARGO_OS-amd64"
# Move binary to path
mv "./argo-$ARGO_OS-amd64" /usr/local/bin/argo
# Test installation
argo version
kubectl create namespace argo
kubectl apply -n argo -f https://github.com/argoproj/argo-workflows/releases/download/v3.7.0/install.yaml
运行
kubectl -n argo port-forward deploy/argo-server --address 0.0.0.0 2746:2746
即可在https://192.168.235.139:2746/访问
使用以下指令免登陆
kubectl patch deployment \
argo-server \
--namespace argo \
--type='json' \
-p='[{"op": "replace", "path": "/spec/template/spec/containers/0/args", "value": [
"server",
"--auth-mode=server"
]}]'
BUG
运行时报错: wait: Error (exit code 64): workflowtaskresults.argoproj.io is forbidden: User “system:serviceaccount:default:default” cannot create resource “workflowtaskresults” in API group “argoproj.io” in the namespace “default”
这个错误表明 默认服务账户 default:default 没有权限操作 argoproj.io/workflowtaskresults 资源。Argo Workflows 需要显式的 RBAC 权限配置,Argo Workflows 的自定义资源(如 WorkflowTaskResults)需要对应的 ClusterRole 和 RoleBinding 权限。默认的 default 服务账户没有这些权限,导致创建资源时被拒绝。以下是解决方案:
- 创建 Argo Workflows 所需的 ClusterRole
# argo-cluster-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflowtemplates
- cronworkflows
- workflowtaskresults
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- pods
- pods/log
- secrets
- configmaps
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
kubectl apply -f argo-cluster-role.yaml
- 将 ClusterRole 绑定到 default 服务账户(示例)
# argo-cluster-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-workflows-default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-workflows
subjects:
- kind: ServiceAccount
name: default
namespace: default # 替换为你的工作流命名空间
kubectl apply -f argo-cluster-role-binding.yaml
更多推荐



所有评论(0)