安装部署

参考文章

# 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 服务账户没有这些权限,导致创建资源时被拒绝。以下是解决方案:

  1. 创建 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
  1. 将 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
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐