环境
rancher 版本 2.6.3
申请api Token
- 登录rancher,点击头像,选择accout & api keys
- 点击create API Key,直接点确定,不要选择scrope,否则调用接口会提示没有权限
- 保存 api key相关信息,这些信息只在创建时显示,所以自己保存下来
查找需要的api
- 在浏览器输入rancher的地址 后面加v3,会列出rancher所有的信息
https://<Rancher-Server-IP>/v3
-
搜索project
-
找到对应namespace下面的deployments
-
选择redeploy
-
点击edit
-
点击showRequest
-
可以看到完整的request信息
-
点击sendRequest 复制请求体数据
-
复制请求体数据,我这里通过axios发的请求,看需求,也可以按照文档提示使用curl
axios
.request({
method: 'put',
maxBodyLength: Infinity,
url: 'https://${<Rancher-Server-IP>}/v3/project/c-m-hqfgrdxw:p-g84dz/workloads/deployment:web-cloud:scm-saas',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: 'Bearer ${你申请的token}',
},
data: JSON.stringify(...你的请求体数据),
})
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
常见报错
-
unable to verify the first certificate
目前我采用的方案是关闭认证,会有一定的安全隐患,内部使用,问题不大
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0; -
Unauthorized 401: must authenticate
这是因为在申请token的时候选择了scope,解决方案:不选择scope,重新申请key