javascript - kubernetes-client javascript - 从 cronjob 创建作业
问题描述
创造工作的等价物是什么:
kubectl -n my-ns create job --from=cronjob/my-cron-job my-job
解决方案
在此评论的帮助下找到了我的问题的解决方案
这是javascript kubernetes-client 的样子,在集群内的 pod 中使用(可能需要 rbac 权限,我在 k8s docker-desktop 上运行,所以不需要):
const createJobFromCronJob = async (
cronJobNamespace: string,
cronJobName: string,
jobNamespace: string,
jobName: string) => {
// next 4 lines can be initialized somewhere else
const kubeConfig = new k8s.KubeConfig();
kubeConfig.loadFromCluster();
const batchV1Api = kubeConfig.makeApiClient(k8s.BatchV1Api);
const batchV1beta1Api = kubeConfig.makeApiClient(k8s.BatchV1beta1Api);
try {
const cronJob = await batchV1beta1Api.readNamespacedCronJob(cronJobName, cronJobNamespace);
const cronJobSpec = cronJob.body.spec.jobTemplate.spec;
const job = new k8s.V1Job();
const metadata = new k8s.V1ObjectMeta();
job.apiVersion = 'batch/v1';
job.kind = 'Job';
job.spec = cronJobSpec;
metadata.name = jobName;
metadata.annotations = {
'cronjob.kubernetes.io/instantiate': 'manual',
};
job.metadata = metadata;
const result = await batchV1Api.createNamespacedJob(jobNamespace, job);
console.log('job created');
} catch (err) {
console.error(`failed to create job: ${err.message}`);
throw err;
}
}
推荐阅读
- flutter - 使用 TabController 设置动画时的中心选项卡
- java - JAVA:使用名称创建 bean 时出错;通过字段表示的不满足的依赖关系
- rest - 在 GET、PUT 或 POST 请求中包含正文会导致“您需要启用 JavaScript 才能运行此应用程序”的响应?
- android - 即使代码正确,我的颤振代码也会出错
- c# - 如何在 .NET 中直接触发下载的 S3 文件的下载窗口?
- python - TensorFlow-从对象到字符串/整数
- google-sheets - 如何从单个单元格中的文本字符串计算尺寸?
- r - r slice min 最早日期,如果 column2 是 min
- css - 用于后处理 CSS 文件的 Webpack 插件
- r - How to select/subset multiple time series data frames in a list with same dates