閱讀372 返回首頁    go 網易 go 網易蜂巢


集群API

目錄

查看集群鏡像列表

請求 header

GET /api/v1/apps/images
Authorization:Token xxxxxxxxxxxxxx
Content-Type:application/json

返回

{
 "custom_images": [
  {
     "tag": "v1",
     "desc": "v1",
     "weight": 0,
     "id": 30202,
     "name": "4638_tomcat2",
     "constraint": null
  }
 ],
 "public_images": [
  {
     "tag": "latest",
     "desc": "",
     "weight": 3,
     "id": 10005,
     "name": "centos",
     "constraint”: {
         "min_combo": 20,
         "max_combo": 50,
         "min_machine_spec": 10,
         "max_machine_spec": 40
     }
  }
 ]
}
參數說明 描述 類型
custom_images 自定義鏡像 json array
public_images 官方鏡像 json array
tag 鏡像 tag string
desc 鏡像描述 string
weight 權重 int
id 鏡像 id long
name 鏡像名稱 string
constraint 鏡像限製 json
min_combo 最小套餐 int
max_combo 最大套餐 int
min_machine_spec 最小機器規格 int
min_machine_spec 最小機器規格 int

創建集群

請求 header

POST /api/v1/apps
Authorization:Token xxxxxxxxxxxxxx
Content-Type:application/json

請求 payload

{
 "name":"name",
 "desc":"desc",
 "domain":"www.abc.com",
 "image_type":1,
 "image_id":3,   //可參考 查看集群鏡像列表 獲取
 "spec_id": 1,
 "replicas":2,
 "env_var":{"key":"value"},
 "version_control":{
   "type":"git",
   "path":"https://github.com/NetEase/c.git", //此處僅為示例代碼,參數說明詳見下方
   "subdir":"tomcat",
   "branch":"online",
   "version":"xxxx",
   "account":"example@163.com",
   "password":"123456"
    },
 "docker_file_type":2,
 "custom_docker_file":"dockfile",
  "log_dirs":["dir1","dir2"] 
}
參數說明 描述 類型 是否必填
name 集群名稱 string 必填
desc 集群描述 string 可填
domain 域名 string 可填
image_type 鏡像類型,1 (官方鏡像) / 2 (自定義鏡像) int 必填
image_id 鏡像 id,可通過 查看集群鏡像列表 所述方法獲取 int 必填
spec_id 服務規格 id,1 (微小型) / 10 (小型) / 20 (中型) / 30 (大型) / 40 (豪華型) / 50 (旗艦型) int 必填
replicas 副本數量,有容量限製,不填默認為1 int 可填
env_var 環境變量 json 可填
version_control 版本管理 json 可填
type 版本管理類型,git / svn string 可填
path 代碼路徑 string 可填
subdir 代碼子目錄 string 可填
branch 代碼分支 string 可填
version 代碼版本號 string 可填
account 版本管理賬號 string 可填
password 版本管理密碼 string 可填
docker_file_type docker 文件類型,1 (自動生成) / 2 (自定義) int 可填
custom_docker_file 自定義 docker file 在源碼中的路徑 string 可填
log_dirs 日誌目錄 json 可填
響應
  • 成功響應
    200 Ok
    {
        "id":1000,
        "url":"https://open.c.163.com/api/v1/hooks/app/44684185834f47f5bf6b3902b8fb939b"
    }
    
  • 參數說明 描述 類型
    id 集群 id long
    url 集群 web hook url,當有代碼提交時,可嵌入此 url 進行持續部署發布。 string
  • 失敗響應 詳情請參見 錯誤返回碼

修改集群

請求 header

PUT /api/v1/apps/{id}
Authorization:Token xxxxxxxxxxxxxx
Content-Type:application/json

請求 payload

{
"desc":"appdesc",
"env_var":{"key":"value"},
"version_control":{
  "type":"git",
  "path":"https://www.github.com/example/test.git",
  "subdir":"tomcat",
  "branch":"online",
  "version":"xxxx",
  "account":"example@163.com",
  "password":"xxxx"
},
"custom_docker_file":"dockfile",
"log_dirs":["dir1","dir2"]
} 
參數說明 描述 類型 是否必填
id 集群 id long 必填
desc 集群描述 string 可填
env_var 環境變量 json 可填
version_control 版本控製 json 可填
type 版本控製類型,git/svn string 可填
path 代碼路徑 string 可填
subdir 代碼子目錄 string 可填
branch 代碼分支 string 可填
version 代碼版本號 string 可填
account 版本管理賬號 string 可填
password 版本管理密碼 string 可填
docker_file_type docker 文件類型,1 (自動生成) / 2 (自定義) int 可填
custom_docker_file 自定義 docker file 在源碼中的路徑 string 可填
log_dirs 日誌目錄 json 可填
響應

集群列表

請求 header

GET /api/v1/apps
Authorization:Token xxxxxxxxxxxxxx
Content-Type:application/json

請求參數

limit=20&offset=0
參數說明 描述 類型 是否必填
limit 大於 0 小於等於 30,默認 20 int 可填
offset 偏移量,大於等於 0,默認 0 int 可填
響應
  • 成功響應
    200 Ok
    {
        "total": 1,
        "apps": [
              {
                "id": 10702,
                "name": "ape2",
                "desc": "appdesc",
                "domain": "www.abc.com",
                "status": "create_fail",
                "replicas": 2,
                "volumes": [
                    {
                        "name": "f9eb1b4428064f15b8aa95aad31e1bc4",
                        "mount_path": "dir1",
                        "readonly": false
                    },
                    {
                        "name": "a439b16783cd469cb66f17254503c72d",
                        "mount_path": "dir2",
                        "readonly": false
                    }
                ],
                "charge_type": 2,
                "spec_id": 1,
                "created_at": "2016-03-25T04:57:48Z",
                "updated_at": "2016-03-25T04:57:48Z",
                "public_ip": null,
                "private_ip": null,
                "version_control": {
                    "type": "git",
                    "path": "https://www.github.com/example/test.git",
                    "subdir": "tomcat",
                    "branch": "online",
                    "version": "xxxx",
                    "account": "example@163.com",
                    "password": "bec55f12a60bf849"
                },
                "custom_docker_file": "dockfile",
                "image_id": 3,
                "containers": [
                    {
                        "private_ip": "10.180.194.16",
                        "container_id": 5ae7bfa878b335311434f6aeef60fcfdb55bd8c51c11ed2912b64ad95061efae"
                    }
                ],           
                "env_var": {
                    "key": "value"
                },
                "web_hook_url": https://open.c.163.com/api/v1/hooks/app/e9c80ebe17464f6d90d3e22f6ac77bad"
            }
         ]
    }
    
  • 參數說明 描述 類型
    id 集群 id long
    name 集群名稱 string
    desc 集群描述 string
    domain 域名 string
    status 集群狀態,create_succ (創建成功) / create_fail (創建失敗) string
    replicas 副本數量,有容量限製,不填默認為 1 int
    volumes 日誌目錄 json
    name 日誌目錄名稱 string
    mount_path 日誌目錄掛載路徑 string
    readonly 是否隻讀 boolean
    spec_id 集群規格 id,1 (微小型) / 10 (小型) /20 (中型) /30 (大型) / 40 (豪華型) / 50 (旗艦型) int
    created_at 創建時間,使用 UTC(世界標準時間)時間,用 ISO8601 進行格式化 string
    updated_at 修改時間,使用 UTC(世界標準時間)時間,用 ISO8601 進行格式化 string
    private_ip 內網 ip string
    public_ip 外網 ip string
    version_control 版本控製 json
    type 版本控製類型,git/svn string
    path 代碼路徑 string
    subdir 代碼子目錄 string
    branch 代碼分支 string
    version 代碼版本號 string
    account 版本管理賬號 string
    password 版本管理密碼 string
    custom_docker_file 自定義 docker file 在源碼中的路徑 string
    image_id 鏡像 id int
    containers 容器實例列表 json
    private_ip 容器私有網 ip string
    container_id 容器 id long
    env_var 環境變量 json
    web_hook_url web hook url string
  • 失敗響應 詳情請參見 錯誤返回碼

查看集群

請求 header

GET /api/v1/apps/{id}
Authorization:Token xxxxxxxxxxxxxx
Content-Type:application/json
參數說明 描述 類型 是否必填
id 集群 id long 必填
響應
  • 成功響應
    200 Ok
    {
        "id": 10702,
        "name": "name",
        "desc": "desc",
        "domain": "www.abc.com",
        "status": "creating",
        "replicas": 2,
        "volumes": [
            {
                "name": "f9eb1b4428064f15b8aa95aad31e1bc4",
                "mount_path": "dir1",
                "readonly": false
            },
            {
                "name": "a439b16783cd469cb66f17254503c72d",
                "mount_path": "dir2",
                "readonly": false
            }
        ],
        "charge_type": 2,
        "spec_id": 1,
        "created_at": "2016-03-25T04:57:48Z",
        "updated_at": "2016-03-25T04:57:48Z",
        "public_ip": null,
        "private_ip": null,
        "version_control": {
            "type": "git",
            "path": "https://www.github.com/example/test.git",
            "subdir": "tomcat",
            "branch": "online",
            "version": "xxxx",
            "account": "example@163.com",
            "password": "bec55f12a60bf849"
        },
        "custom_docker_file": "dockfile",
        "image_id": 3,
        "containers": [
            {
                "private_ip": "10.180.194.16",
                "container_id": 5ae7bfa878b335311434f6aeef60fcfdb55bd8c51c11ed2912b64ad95061efae"
            }
        ],   
        "env_var": {
            "key": "value"
        },
        "web_hook_url": "https://open.c.163.com/api/v1/hooks/app/e9c80ebe17464f6d90d3e22f6ac77bad"
    }
    
  • 參數說明 描述 類型
    id 集群 id long
    name 集群名稱 string
    desc 集群描述 string
    domain 域名 string
    status 集群狀態,create_succ (創建成功) / create_fail (創建失敗) string
    replicas 副本數量,有容量限製,不填默認為 1 int
    volumes 日誌目錄 json
    name 日誌目錄名稱 string
    mount_path 日誌目錄掛載路徑 string
    readonly 是否隻讀 boolean
    spec_id 集群規格 id,1 (微小型) / 10 (小型) / 20 (中型) / 30 (大型) / 40 (豪華型) / 50 (旗艦型) int
    created_at 創建時間,使用 UTC(世界標準時間)時間,用 ISO8601 進行格式化 string
    updated_at 修改時間,使用 UTC(世界標準時間)時間,用 ISO8601 進行格式化 string
    private_ip 內網 ip string
    public_ip 外網 ip string
    version_control 版本控製 json
    type 版本控製類型,git/svn string
    path 代碼路徑 string
    subdir 代碼子目錄 string
    branch 代碼分支 string
    version 代碼版本號 string
    account 版本管理賬號 string
    password 版本管理密碼 string
    custom_docker_file 自定義 docker file 在源碼中的路徑 string
    image_id 鏡像 id int
    containers 容器實例列表 json
    private_ip 容器私有網 ip string
    container_id 容器 id long
    env_var 環境變量 json
    web_hook_url web hook url string
  • 失敗響應 詳情請參見 錯誤返回碼

刪除集群

DELETE /api/v1/apps/{id}

請求 header

Authorization:Token xxxxxxxxxxxxxx
參數說明 描述 類型 是否必填
id 集群 id long 必填
響應

集群擴容

請求 header

PUT /api/v1/apps/{id}/replications/{replicas}/actions/resize
Authorization:Token xxxxxxxxxxxxxx
Content-Type:application/json
參數說明 描述 類型 是否必填
id 集群 id long 必填
replicas 副本數 int 必填
響應

監聽

支持長連接,超時或者對後端容器實例進行修改操作(創建、更新、回滾、重啟、刪除、擴縮容等)後即時返回。

請求 header

GET /api/v1/watch/apps/{id}
Authorization:Token xxxxxxxxxxxxxx
Content-Type:application/json
參數說明 描述 類型 是否必填
id 集群 id long 必填
響應
  • 成功響應
    200 Ok
    {    
        {
            "private_ip": "10.180.194.16",
            "container_id": "5ae7bfa878b335311434f6aeef60fcfdb55bd8c51c11ed2912b64ad95061efae"
        }
    }
    
  • 參數說明 描述 類型
    containers 容器實例列表 json
    private_ip 容器私有網 ip string
    container_id 容器 id long
  • 失敗響應 詳情請參見 錯誤返回碼

最後更新:2017-01-03 10:48:53

  上一篇:go 對象操作
  下一篇:go 如何找回備案密碼