k8s 服務
新增 k8s 服務
URI
POST /admin-api/global/k8s
JSON body
name
type: string
required: yes
description: k8s的名稱
host
type: string
required: yes
description: k8s的服務地址
domain
type: string
required: yes
description: k8s 的域名,與 host 引數只能有一個
connect_timeout
type: string
required: yes
description: 連線超時時間,單位秒
read_timeout
type: string
required: yes
description: 讀超時時間,單位秒
port
type: integer
required: yes
description: k8s的服務埠
ssl_verify
type: boolean
required: yes
description: 是否做 SSL 校驗(預設否)
token
type: string
required: yes
description: 訪問 k8s 的token
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
http://admin-site/admin-api/global/k8s \
-d '
{
"name":"test",
"host":"10.68.0.1",
"connect_timeout": 5,
"read_timeout": 5,
"port":443,
"ssl_verify":false,
"token":"eyJhbGciOiJSUzI1NiIsImtpZCI6InJOZkJvNWItMDhYOXBfUGw2czBleWxNWXZBWi1KOXFqQ05GdjVCWUdpc3cifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Im9wZW5yZXN0eS1lZGdlLXNlcnZpY2VhY2NvdW50LXRva2VuLTdkMjk5Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Im9wZW5yZXN0eS1lZGdlLXNlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYjkzZTI0MzAtNGFjMi00Y2ZjLWExYzktNzEyZjMxZmM4ZTUzIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmRlZmF1bHQ6b3BlbnJlc3R5LWVkZ2Utc2VydmljZWFjY291bnQifQ.I0x3A0Z1Oe_WQVKtCooYqas6JcQbvSxd0sFpFLecLT4vACDFyB3TsxAoVg1WPIzIue-VXoWUSij9Fa-RCHM_5k_mbY9nyuaJDjq8ziMZdlOHHRcgoACcCjUIK_2-o0D8PaNpHs5X3JZYmbQTXMMjs81Sd0sNsSJ2XIvhwN4Qkg9FCngFxPf_xBWYUh8EbMALde53GyB3LgKwgXu_538skCvoH2SGWXCr6oYc7W1wngHrrmy7Wzq_NlTlL-hQtEz9ST8Rik1zHbItrfQpgmW4d2UOrZ6IL91ZpKDGNS4gNt7pJ8opEvMascg92O28H9Y9kAIgJtOZFBHSQl10DADHBw"
}
'
響應示例
Status: 200 OK
{
"data": {
"id": 1
},
"status": 0
}
查詢 k8s 服務列表
URI
GET /admin-api/global/k8s
JSON body
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
http://admin-site/admin-api/global/k8s
響應示例
Status: 200 OK
{
"data": [
{
"id" : 1,
"name":"test",
"host":"10.68.0.1",
"port":443,
"connect_timeout": 5,
"read_timeout": 5,
"ssl_verify":false,
"status" : "NORMAL"
}
],
"status": 0
}
查詢單個 k8s 服務資訊
URI
GET /admin-api/global/k8s/{id}
JSON body
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
http://admin-site/admin-api/global/k8s/1
響應示例
Status: 200 OK
{
"data": {
"id" : 1,
"name":"test",
"host":"10.68.0.1",
"connect_timeout": 5,
"read_timeout": 5,
"port":443,
"ssl_verify":false,
"status" : "NORMAL",
},
"status": 0
}
更新單個 k8s 服務資訊
URI
PUT /admin-api/global/k8s/{id}
JSON body
name
type: string
required: yes
description: k8s的名稱
host
type: string
required: yes
description: k8s的服務地址
domain
type: string
required: yes
description: k8s 的域名,與 host 引數只能有一個
connect_timeout
type: string
required: yes
description: 連線超時時間,單位秒
read_timeout
type: string
required: yes
description: 讀超時時間,單位秒
port
type: integer
required: yes
description: k8s的服務埠
ssl_verify
type: boolean
required: yes
description: 是否做 SSL 校驗(預設否)
token
type: string
required: yes
description: 訪問 k8s 的token
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
-XPUT http://admin-site/admin-api/global/k8s/1 \
-d '
{
"name":"test",
"host":"10.68.0.1",
"port":443,
"ssl_verify":false,
"token":"eyJhbGciOiJSUzI1NiIsImtpZCI6InJOZkJvNWItMDhYOXBfUGw2czBleWxNWXZBWi1KOXFqQ05GdjVCWUdpc3cifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Im9wZW5yZXN0eS1lZGdlLXNlcnZpY2VhY2NvdW50LXRva2VuLTdkMjk5Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Im9wZW5yZXN0eS1lZGdlLXNlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYjkzZTI0MzAtNGFjMi00Y2ZjLWExYzktNzEyZjMxZmM4ZTUzIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmRlZmF1bHQ6b3BlbnJlc3R5LWVkZ2Utc2VydmljZWFjY291bnQifQ.I0x3A0Z1Oe_WQVKtCooYqas6JcQbvSxd0sFpFLecLT4vACDFyB3TsxAoVg1WPIzIue-VXoWUSij9Fa-RCHM_5k_mbY9nyuaJDjq8ziMZdlOHHRcgoACcCjUIK_2-o0D8PaNpHs5X3JZYmbQTXMMjs81Sd0sNsSJ2XIvhwN4Qkg9FCngFxPf_xBWYUh8EbMALde53GyB3LgKwgXu_538skCvoH2SGWXCr6oYc7W1wngHrrmy7Wzq_NlTlL-hQtEz9ST8Rik1zHbItrfQpgmW4d2UOrZ6IL91ZpKDGNS4gNt7pJ8opEvMascg92O28H9Y9kAIgJtOZFBHSQl10DADHBw"
}
'
響應示例
Status: 200 OK
{
"status": 0
}
刪除 k8s 服務
URI
DELETE /admin-api/global/k8s/{id}
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
-XDELETE http://admin-site/admin-api/global/k8s/1
響應示例
Status: 200 OK
{
"status": 0
}
查詢某個 k8s 的名稱空間列表
URI
GET /admin-api/k8s/{id}/namespaces
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
-XGET http://admin-site/admin-api/k8s/1/namespaces
響應示例
Status: 200 OK
{
"data" : [
"default", "kube-public", "kube-system"
],
"status": 0
}
查詢某個 k8s 的某個名稱空間下的服務列表
URI
GET /admin-api/k8s/{id}/namespaces/{namespace}/services
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
-XGET http://admin-site/admin-api/k8s/1/namespaces/default/services
響應示例
Status: 200 OK
{
"data" : [
"test-hello", "test-nginx"
],
"status": 0
}
查詢某個 k8s 的某個名稱空間下的某個服務的服務埠列表
URI
GET /admin-api/k8s/{id}/namespaces/{namespace}/services/{service}/ports
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
-XGET http://admin-site/admin-api/k8s/1/namespaces/default/services
響應示例
Status: 200 OK
{
"data" : [
80, 8080
],
"status": 0
}
新增一個上游並將這個上游設定為 k8s 中的某個服務
OpenResty Edge™ 會自動從 k8s 中獲取上游的節點,並實時檢測上游節點的變動。
URI
POST /admin-api/applications/http/{id}/k8s_upstreams
JSON body
name
type: string
required: yes
description: upstream的名稱
k8s_services
type: array
required: yes
description: 繫結的 k8s 服務列表
k8s_services.k8s
type: integer
required: yes
description: k8s id
k8s_services.k8s_namespace
type: string
required: yes
description: k8s的名稱空間
k8s_services.k8s_service
type: string
required: yes
description: k8s的服務名稱
k8s_services.k8s_service_port
type: string
required: yes
description: k8s服務的服務埠
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
-XPOST http://admin-site/admin-api/applications/http/1/clusters \
-d '
{
"name":"test",
"enable_checker": false,
"is_k8s_service" : true,
"k8s_services" : [
{
"k8s" : 1,
"k8s_namespace" : "default",
"k8s_service" : "test-hello",
"k8s_service_port" : 80
}
]
}
'
響應示例
Status: 200 OK
{
"data" : {
"id" : 1
},
"status": 0
}
更新一個上游並將這個上游設定為 k8s 中的某個服務
OpenResty Edge™ 會自動從 k8s 中獲取上游的節點,並實時檢測上游節點的變動。
URI
PUT /admin-api/applications/http/{applicationid}/clusters/{clusterid}
JSON body
name
type: string
required: yes
description: upstream的名稱
k8s_services
type: array
required: yes
description: 這個 upstream 繫結的 k8s 服務列表
k8s_services.k8s
type: integer
required: yes
description: k8s id
k8s_services.k8s_namespace
type: string
required: yes
description: k8s的名稱空間
k8s_services.k8s_service
type: string
required: yes
description: k8s的服務名稱
k8s_services.k8s_service_port
type: string
required: yes
description: k8s服務的服務埠
請求示例
Shell
curl \
-H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
-XPUT http://admin-site/admin-api/applications/http/1/k8s_upstreams/1 \
-d '
{
"name":"test",
"enable_checker": false,
"is_k8s_service" : true,
"k8s_services" : [
{
"k8s" : 1,
"k8s_namespace" : "default",
"k8s_service" : "test-hello",
"k8s_service_port" : 80
}
]
}
'
響應示例
Status: 200 OK
{
"status": 0
}