【发布时间】:2020-10-29 14:38:06
【问题描述】:
在 Azure Kubernetes 服务上运行用 C# 编写的容器化批处理作业的最简单方法是什么?
此问题专门针对 AKS。因此,我不希望它作为 Azure 容器实例或在 Azure 中以无服务器方式运行。
【问题讨论】:
标签: c# azure kubernetes azure-aks
在 Azure Kubernetes 服务上运行用 C# 编写的容器化批处理作业的最简单方法是什么?
此问题专门针对 AKS。因此,我不希望它作为 Azure 容器实例或在 Azure 中以无服务器方式运行。
【问题讨论】:
标签: c# azure kubernetes azure-aks
您可以使用kubernetes job。
一个 Job 创建一个或多个 Pod 并确保指定数量的 Pod 他们成功终止。随着 pod 成功完成,作业 跟踪成功完成。当指定数量的 达到成功完成,任务(即作业)完成。 删除 Job 将清理它创建的 Pod。
一个简单的例子是创建一个 Job 对象以便可靠地运行一个 Pod 完成。 Job 对象将启动一个新的 Pod,如果第一个 Pod 失败或被删除(例如由于节点硬件故障或 节点重启)。
您还可以使用一个 Job 来并行运行多个 Pod。
这是一个示例作业配置。它计算 π 到 2000 个位置并打印出来。大约需要 10 秒才能完成。
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
如果您想按重复计划运行批处理作业,请使用kubernetes cronjob
【讨论】: