外观
1. 查询可用镜像
- Token: 此接口需要 Token 调用,需要先调用登录接口换取 Token。
- 费用:不收费
- 流量限制:每token每秒50次。
- 接口作用:查询平台上可被调用的所有镜像,包括公有镜像 私有镜像 社区镜像。
- 公有镜像: 表示所有用户都可以使用的镜像,均由算力互联公司提供,加载速度较快。
- 社区镜像:为平台用户主动上传分享的镜像,所有权归属用户,由此镜像创建容器相比公有镜像稍慢。
- 私有镜像:为账号用户及下属用户所创建的所有镜像,只能由自己访问。
- namespace规则:私有镜像查询时,如果请求体中指定namespace,查询该namespace下的私有镜像。如果请求体中的namespace为空或者不传,则查询token下所有namespace所创建的镜像。
接口路径
- 公网地址:https://console.casdao.com:9001/casdao/api/v1.0/k8s/spaces/query/image
- 内网地址:http://12.2.100.11:9001/casdao/api/v1.0/k8s/spaces/query/image
请求方式
POST 方式,请求参数为 JSON 格式
输入说明
请求头
请求头 | 说明 |
---|---|
X-Auth-Token | Token 值 |
请求体
请求参数 | 选项 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
namespace | 可选 | 字符串 | 空 | 查询私有镜像需提供指定namespace,否则查询token账户下所以私有镜像。公有镜像与社区镜像查询不需要提供 |
page | 可选 | 整数型 | 1 | 结果分页,默认第一页 |
limit | 可选 | 整数型 | 20 | 结果分页,默认每页20条 |
imageType | 可选 | 整数型 | 0 | 镜像类型 公有镜像0 私有镜像为1 社区镜像为2 |
search_string | 可选 | 字符串 | 空 | 用来搜索匹配镜像名称, |
示例
json
{
"namespace": "",
"page": 1,
"limit": 2,
"imageType": 0,
"search_string": ""
}
输出说明
请求参数 | 说明 |
---|---|
code | 响应码,成功为 200,非 200 状态码为失败,参考 msg 错误信息 |
msg | 响应信息,成功状态下为 null,失败状态下为具体错误信息 |
data | 响应数据 |
total | 此类别下的所有镜像数量 |
name | 镜像名称 |
description | 简介 |
imageType | 镜像类型 |
tag | 镜像标签 |
logo | 镜像logo |
uid | 镜像uid |
url | 镜像详情页url ,有些为空 |
version | 镜像版本 |
startCommand | 镜像启动命令,该命令会在容器启动后自动执行 |
defaultPort | 镜像默认端口,该端口会在容器启动后自动暴漏给公网,也可以在创建容器时指定 |
示例
json
{
"code": 200,
"msg": "success",
"data": {
"total": 30,
"list": [
{
"name": "cuda-12.0.0-ubuntu20.04-py3.9-root",
"description": "root",
"imageType": 0,
"tag": "root",
"logo": "https://t437.com/casdao/i/2024/04/01/82fxk.png",
"uid": "00032a1",
"url": "",
"version": "12.0.0",
"startCommand": null,
"defaultPort": null
},
{
"name": "cuda12.1.0-ubuntu22.04-py3.9-root",
"description": "带root",
"imageType": 0,
"tag": "cuda12.1.0-ubuntu22.04-py3.9-root",
"logo": "https://t437.com/casdao/i/2024/04/01/82fxk.png",
"uid": "000329f",
"url": "",
"version": "cuda12.1.0-ubuntu22.04-py3.9-root",
"startCommand": null,
"defaultPort": null
}
]
}
}
2. 获取一个uid
- Token: 此接口需要 Token 调用,需要先调用登录接口换取 Token。
- 费用:不收费
- 流量限制:每token每秒50次。
- 接口作用:辅助接口。获取一个唯一uid,用户创建容器。token只是为了鉴权,没有实际作用。
- 注意:每次创建容器需要传入一个全局唯一的uid,以防止由于网络波动等各种原因导致的多次调用容器创建接口。
- namespace规则:获取的uid会携带namespace信息,建议添加。
接口路径
- 公网地址:https://console.casdao.com:9001/casdao/api/v1.0/k8s/spaces/create/uid
- 内网地址:http://12.2.100.11:9001/casdao/api/v1.0/k8s/spaces/create/uid
请求方式
POST 方式,请求参数为 JSON 格式
输入说明
请求头
请求头 | 说明 |
---|---|
X-Auth-Token | Token 值 |
请求体
请求参数 | 选项 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
namespace | 可选 | 字符串 | 空 | 账号下的namespace,可以不传 |
示例
json
{
"namespace": "casdao"
}
输出说明
请求参数 | 说明 |
---|---|
code | 响应码,成功为 200,非 200 状态码为失败,参考 msg 错误信息 |
msg | 响应信息,成功状态下为 null,失败状态下为具体错误信息 |
data | 响应数据 |
示例
json
{
"code": 200,
"msg": "success",
"data": {
"uid": "716e7f6d6a757469373535327879776e736c0000018e9d71611c"
}
}
3. 创建容器
- Token: 此接口需要 Token 调用,需要先调用登录接口换取 Token。
- 费用:容器创建成功以后开始计费,创建过程中不收费,创建不成功不收费。根据资源类型与使用量确定单价。使用量目前只有GPU数量可以调整。CPU内存本地SSD硬盘资源不可以调整,只能申请到GPU数量的预设比例。具体比例请到官网查询。
- 流量限制:每token每秒50次。
- 接口作用:创建一个容器(不支持批量创建)
- namespace规则:创建的容器归属于指定namespace,如果不指定namespace,则默认为token账号所对应的namespace。各个namespace之间可以资源隔离。
接口路径
- 公网地址:https://console.casdao.com:9001/casdao/api/v1.0/k8s/spaces/create/container
- 内网地址:http://12.2.100.11:9001/casdao/api/v1.0/k8s/spaces/create/container
请求方式
POST 方式,请求参数为 JSON 格式
输入说明
请求头
请求头 | 说明 |
---|---|
X-Auth-Token | Token 值 |
请求体
请求参数 | 选项 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
namespace | 可选 | 字符串 | 空 | 账号下的namespace,默认为账号对应同名namespace |
container_uid | 必填 | 字符串 | 无 | 容器UID,要求是长度大于8的数字字母字符串,可自己生成。推荐使用获取uid接口获得 |
image_uid | 必填 | 字符串 | 无 | 镜像UID |
name | 可选 | 字符串 | 空 | 容器名称, 只是用于展示作用,格式不限 |
gpuNum | 必填 | 整数 | 无 | gpu数量, 1到8之间的整数 |
gpuType | 必填 | 字符串 | 无 | GPU型号,资源类型 |
ssd | 可选 | 整数 | 0 | 本地SSD磁盘容量, 默认为0,表示按照默认配置创建(目前未开放,传什么都一样) |
port | 可选 | 字符串 | 空 | 端口号, 默认为None,表示不使用端口映射 |
webUsername | 可选 | 字符串 | 空 | web用户名, 默认为tom |
webPassword | 可选 | 字符串 | 空 | web密码, 默认为None, 随机生成,与ssh密码相同 |
示例
json
{
"container_uid": "797a6e6c7a66736c353536xxxxxxxxxxxxxx",
"image_uid": "00032a1",
"name": "测试",
"gpuNum": 1,
"gpuType": "N-3090-24",
"ssd": 0,
"port": 6666,
"webUsername": "tom",
"webPassword": "xxxxxxxxxxxxx"
}
输出说明
请求参数 | 说明 |
---|---|
code | 响应码,成功为 200,非 200 状态码为失败,参考 msg 错误信息 |
msg | 响应信息,成功状态下为 null,失败状态下为具体错误信息 |
data | 响应数据 |
示例
json
{
"code": 200,
"msg": "success",
"data": {
"containerId": "797a6e6c7a66736c35353638327879776e736c0000018e9d7edb8a"
}
}
4. 删除容器
- Token: 此接口需要 Token 调用,需要先调用登录接口换取 Token。
- 费用:容器创建成功以后开始计费,创建过程中不收费,创建不成功不收费。根据资源类型与使用量确定单价。使用量目前只有GPU数量可以调整。CPU内存本地SSD硬盘资源不可以调整,只能申请到GPU数量的预设比例。具体比例请到官网查询。
- 流量限制:每token每秒50次。
- 接口作用:删除一个容器(不支持批量删除)
- namespace规则:创建的容器归属于指定namespace,如果不指定namespace,则默认为token账号所对应的namespace。各个namespace之间可以资源隔离。
接口路径
- 公网地址:https://console.casdao.com:9001/casdao/api/v1.0/k8s/spaces/delete/container
- 内网地址:http://12.2.100.11:9001/casdao/api/v1.0/k8s/spaces/delete/container
请求方式
POST 方式,请求参数为 JSON 格式
输入说明
请求头
请求头 | 说明 |
---|---|
X-Auth-Token | Token 值 |
请求体
请求参数 | 选项 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
namespace | 可选 | 字符串 | 空 | 账号下的namespace,默认为账号对应同名namespace |
container_uid | 必填 | 字符串 | 无 | 容器UID,获取uid接口所返回的uid |
示例
json
{
"namespace": "casdao",
"container_uid": "797a6e6c7a66736c35353638327879776e736c0000018e9d7edb8a"
}
输出说明
请求参数 | 说明 |
---|---|
code | 响应码,成功为 200,非 200 状态码为失败,参考 msg 错误信息 |
msg | 响应信息,成功状态下为 null,失败状态下为具体错误信息 |
data | 响应数据 |
示例
json
{
"code": 200,
"msg": null,
"data": {
}
}
5. 列出所有容器及其状态
- Token: 此接口需要 Token 调用,需要先调用登录接口换取 Token。
- 费用:不收费
- 流量限制:每token每秒50次。
- 接口作用:列出指定namespace下的容器
- namespace规则:如果指定namespace,则列出namespace下的所有容器;如果没有指定, 则列出token下的所有namespace下的所有容器。
接口路径
- 公网地址:https://console.casdao.com:9001/casdao/api/v1.0/k8s/spaces/query/container
- 内网地址:http://12.2.100.11:9001/casdao/api/v1.0/k8s/spaces/query/container
请求方式
POST 方式,请求参数为 JSON 格式
输入说明
请求头
请求头 | 说明 |
---|---|
X-Auth-Token | Token 值 |
请求体
请求参数 | 选项 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
namespace | 可选 | 字符串 | 空 | 账号下的namespace,默认为账号对应同名namespace |
示例
json
{
"namespace": "casdao"
}
输出说明
请求参数 | 说明 |
---|---|
code | 响应码,成功为 200,非 200 状态码为失败,参考 msg 错误信息 |
msg | 响应信息,成功状态下为 null,失败状态下为具体错误信息 |
data | 响应数据 |
uid | 容器uid |
namespace | 所属namespace |
port | 容器内部开放接口,不能是22 6006 和 8888。将转发至targetPort |
targetPort | 将容器内部接口转发至外部端口 |
pod_name | k8s返回的pod_name |
name | 创建容器时指定的名称 |
image_name | 容器使用的镜像名称 |
resource | 显卡型号 |
status | 创建结果, waiting: 任务已经建立,但是没有开始创建,有可能在排队,资源不够,等等。0-100: 用字符串表示的数字,代表创建进度。running: 成功创建.error: 错误请联系管理员 |
create_time | 创建成功的时间 |
gpuNum | 显卡数量 |
jupyter_uri | jupyterlab的访问网址 |
tensorboard_uri | tensorboard的访问网址 |
ssh_uri | ssh 地址 |
ssh_user | ssh 用户名,可能是tom或者root.跟镜像有关 |
ssh_port | ssh 端口号 |
ssh_password | ssh 密码,自动生成,如需修改,需要进容器 |
fssd_num | 本地SSD存储空间,单位G |
cpu_num | CPU核数 |
system_disk | 系统盘可用空间,单位G |
memory_num | 内存大小,单位G |
image_version | 镜像版本号 |
image_id | 镜像id |
webUsername | 应用服务登录用户名 |
webPassword | 应用服务登录密码 |
示例
json
{
"code": 200,
"msg": "success",
"data": {
"total": 1,
"list": [
{
"uid": "797a6e6c7a66736c35353638327879776e736c0000018e9d7edb8a",
"namespace": "casdao",
"port": 6666,
"targetPort": 31220,
"pod_name": "incredible-typhoon-7852-777bf78496-t5tfx",
"container_name": "cuda",
"name": "测试1",
"image_name": "cuda12.1.0-ubuntu22.04-py3.9-root",
"resource": "NVIDIA Geforce 3090",
"status": "running",
"create_time": "2024-04-02T16:27:46",
"gpuNum": 1,
"jupyter_uri": "https://notebook.casdao.com:30352/jupyter/incredible-typhoon-7852/?token=D2ha3BGVtc3buc8vaqVt",
"tensorboard_uri": "",
"ssh_uri": "root@60.171.194.75",
"ssh_user": "root",
"ssh_port": "51404",
"ssh_password": "D2ha3BGVtc3buc8vaqVt",
"fssd_num": 10,
"cpu_num": 7,
"system_disk": 30,
"memory_num": 16,
"image_version": "cuda12.1.0-ubuntu22.04-py3.9-root",
"image_id": "000329f",
"webUsername": "tom",
"webPassword": "string"
}
]
}
}