嗨,我创建了一个节点应用,该应用使用kubernetes-client库创建了一个k8作业。然后,该作业应用通过对我的节点应用的http调用进行响应。为了减少网络延迟和时间,我必须将所有内容放入群集中。是否可以在部署内部创建作业?
参考:https://github.com/kubernetes-client
apiVersion: batch/v1
kind: Job
metadata:
name: job
spec:
ttlSecondsAfterFinished: 10
template:
spec:
containers:
- name: samplejob
image: gcr.io/hjgfjfhgffghfght
command: ["node", "index.js", '{api_url":"apienpoint"}']
resources:
limits:
memory: "128Mi"
cpu: "100m"
requests:
memory: "128Mi"
cpu: "100m"
restartPolicy: Never
backoffLimit: 1
答案 0 :(得分:2)
这绝对是可能的。这完全取决于您如何创建node.js容器映像。您的应用程序可以作为集群中的部署运行。某些情况将导致应用程序触发事件。该事件将向k8s主服务器发送API调用,以请求创建作业。
您可以使用client libraries之一与k8s主界面进行交互。 node.js库由社区维护。
答案 1 :(得分:0)
您可以为代码构建docker映像,就像可以使用
node server.js
要触发您的主应用程序并将同一图像放置在Kubernetes作业中,请将其保留在其他目录中,然后使用
执行该图像command
作业/ cronjob的yaml模板中的选项。
这将为您排序