Rancher v2.6.8手动触发CronJob/Pod的API接口查询请求
手动触发Rancher CronJob/Workload的API方案
CronJob 立即运行接口
Rancher 底层复用 Kubernetes 原生 API,直接调用以下接口即可触发 CronJob 立即运行,和页面点击“立即运行”效果完全一致:
- 请求方式:
POST - 接口路径:
/k8s/clusters/<集群ID>/apis/batch/v1/namespaces/<命名空间>/cronjobs/<CronJob名称>/run - 请求头:需携带 Rancher 认证 Token(控制台个人设置页生成),
Content-Type: application/json - 请求体:无需内容,直接发送空 POST 请求
Workload 触发操作
针对 Deployment/StatefulSet 这类 Workload,没有直接的“立即运行”对应接口,可通过两种方式实现类似需求:
1. 触发 Workload 滚动更新
模拟 kubectl rollout restart 的逻辑,通过更新 Pod 模板的注解触发滚动重启:
- 请求方式:
PATCH - 接口路径:
/k8s/clusters/<集群ID>/apis/apps/v1/namespaces/<命名空间>/deployments/<Deployment名称> - 请求体(JSON 格式):
{ "spec": { "template": { "metadata": { "annotations": { "kubectl.kubernetes.io/restartedAt": "<当前时间字符串,如2024-05-20T10:00:00Z>" } } } } }
2. 基于 Workload 模板创建一次性 Pod
如果需要生成一个和 Workload 配置一致的临时 Pod,步骤如下:
- 先获取目标 Workload 的 Pod 模板:
- 请求方式:
GET - 接口路径:
/k8s/clusters/<集群ID>/apis/apps/v1/namespaces/<命名空间>/deployments/<Deployment名称>
- 请求方式:
- 提取响应中
spec.template部分,修改metadata.name为临时名称(避免冲突),移除 Workload 相关的标签/注解 - 发送创建 Pod 请求:
- 请求方式:
POST - 接口路径:
/k8s/clusters/<集群ID>/api/v1/namespaces/<命名空间>/pods - 请求体:修改后的
spec.template内容
- 请求方式:
关键参数说明
- 集群ID:可从 Rancher 集群详情页的 URL 中获取,格式为
c-m-xxxxxx - 认证Token:需具备目标集群、命名空间的编辑权限(至少能操作 CronJob、Workload、Pod)
内容的提问来源于stack exchange,提问作者what's_in_a_name
相关产品推荐
相关产品推荐

