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
}