2.5. 自定义 PodSpec 配置
您可以使用 SonataFlow 自定义资源(CR)中的自定义 PodSpec 配置来满足 Red Hat OpenShift 上的特定容器和部署要求。
您可以将此功能用于高级配置,例如:
- 设置 CPU 和内存请求和限值
- 添加 sidecar 容器
- 配置卷和挂载
- 选择非默认部署模型
无服务器逻辑 Operator 通过 SonataFlow CR 中的 .spec.podTemplate 属性启用这些自定义。
以下示例显示了带有定义的资源请求和限值的 SonataFlow CR,以及工作流容器的环境变量:
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
name: <name>
spec:
podTemplate:
container:
resources:
limits:
cpu: "250m"
memory: "128Mi"
requests:
cpu: "100m"
memory: "64Mi"
env:
- name: EXAMPLE_VAR
value: "value"
# ...
.spec.podTemplate 属性支持标准 Kubernetes PodSpec API 中定义的大多数字段,并应用 Kubernetes API 验证规则。
2.5.1. Knative 部署模型 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
默认情况下,每个 SonataFlow 实例都部署为 Kubernetes Deployment 对象。要将实例部署为 Knative Serving Service 对象,请将 .spec.podTemplate.deploymentModel 字段设置为 knative。
例如:
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
name: <name>
spec:
podTemplate:
deploymentModel: knative
# ...
重要
- 不要在 dev 配置集中使用 Knative 部署模型。如果指定了这个选项,Operator 会忽略它。
- Knative 可以终止空闲的 pod,以中断长时间运行的工作流或减慢外部服务的速度。
- 为使用回调状态的工作流启用持久性,以在 pod 终止后恢复。
-
如果您的工作流需要,请显式启用
initContainers。Knative 默认禁用它们。