流程编排
2 分钟阅读
简要概述
基于 argo workflow 实现对各个原子接口编排完成较复杂的任务流程。
引入改模块后对编译后的二进制增加大约 4M 大小。
配置示例
最小化配置
# 流程编排配置
automations:
enable: true
导出默认值
# 流程编排配置
automations:
enable: false
kubernetes:
config_path: ""
rest_config:
host: ""
bearer_token: ""
bearer_token_file: ""
tls_client_config:
insecure: false
配置说明
KubernetesConfig
名称 | 类型 | 说明 |
---|---|---|
config_path | string | 连接 k8s 的 kubeconfig 配置文件地址 |
rest_config | RestConfig | 连接 k8s 的 rest config 配置参数,优先级低于 config_path |
- RestConfig
名称 | 类型 | 说明 |
---|---|---|
host | string | kube-apiserver 地址,如 1.1.1.1:6443 |
bearer_token | string | 访问 apiserver 的 token |
bearer_token_file | string | 访问 apiserver 的 token 文件,优先级低于 bearer_token |
tls_client_config | TLSClientConfig | 连接 apiserver tls 配置 |
- TLSClientConfig
名称 | 类型 | 说明 |
---|---|---|
insecure | bool | 是否忽略 ca 证书验证 |
应用场景
在集群内连接 apiserver
- 配置 app.yaml 文件
# 流程编排配置
automations:
enable: true
如果未主动配置 k8s 连接串,则使用 “InClusterConfig” 模式连接 kube-apiserver,依赖以下变量与文件:
KUBERNETES_SERVICE_HOST
KUBERNETES_SERVICE_PORT
/var/run/secrets/kubernetes.io/serviceaccount/token
/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
- 确认 sa 挂载了 token
假设运行 pod 的 sa 账号是 “grpc-kit”。
开启 “automountServiceAccountToken” 参数以自动挂载 token(默认开启状态):
apiVersion: v1
kind: ServiceAccount
metadata:
name: grpc-kit
automountServiceAccountToken: true
或者在 Pod 中开启(默认开启状态):
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
automountServiceAccountToken: true
- 确认 sa 用于创建 workflow 权限
假设应用运行在命名空间 “biz-dev-uptime” 下使用 “grpc-kit” 账户:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: grpc-kit
namespace: biz-dev-uptime
---
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
name: grpc-kit
namespace: biz-dev-uptime
annotations:
kubernetes.io/service-account.name: grpc-kit
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: executor
rules:
- apiGroups:
- argoproj.io
resources:
- workflowtaskresults
- workflowtemplates
verbs:
- create
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: executor
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: executor
subjects:
- kind: ServiceAccount
name: grpc-kit
namespace: biz-dev-uptime
最后修改 November 22, 2024: feat: add k8s connect config (c108f22)