更新时间:2024-09-30 GMT+08:00

获取集群升级前检查任务详情

功能介绍

获取集群升级前检查任务详情,任务ID由调用集群检查API后从响应体中uid字段获取。

调用方法

请参见如何调用API

URI

GET /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/precheck/tasks/{task_id}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

项目ID,获取方式请参见如何获取接口URI中参数

约束限制:

不涉及

取值范围:

账号的项目ID

默认取值:

不涉及

cluster_id

String

参数解释:

集群ID,获取方式请参见如何获取接口URI中参数

约束限制:

不涉及

取值范围:

集群ID

默认取值:

不涉及

task_id

String

参数解释:

升级任务ID,调用集群升级API后从响应体中uid字段获取。

约束限制:

不涉及

取值范围:

升级任务ID

默认取值:

不涉及

请求参数

响应参数

状态码: 200

表2 响应Body参数

参数

参数类型

描述

apiVersion

String

api版本,默认为v3

kind

String

资源类型,默认为PreCheckTask

metadata

PrecheckTaskMetadata object

升级前检查任务元数据信息

spec

PrecheckCluserResponseSpec object

升级前检查任务信息

status

PrecheckStatus object

升级前检查任务状态

表3 PrecheckTaskMetadata

参数

参数类型

描述

uid

String

任务ID

creationTimestamp

String

任务创建时间

updateTimestamp

String

任务更新时间

表4 PrecheckCluserResponseSpec

参数

参数类型

描述

clusterID

String

集群ID

clusterVersion

String

当前集群版本

targetVersion

String

升级目标版本

skippedCheckItemList

Array of skippedCheckItemListResponse objects

跳过检查的项目列表

表5 skippedCheckItemListResponse

参数

参数类型

描述

name

String

跳过检查的项目名称

resourceSelector

resourceSelectorResponse object

资源标签选择器,仅节点检查涉及该参数,集群检查和插件检查不涉及

表6 resourceSelectorResponse

参数

参数类型

描述

key

String

标签键值

values

Array of strings

标签值列表

operator

String

标签值

表7 PrecheckStatus

参数

参数类型

描述

phase

String

状态,取值如下

  • Init: 初始化

  • Running 运行中

  • Success 成功

  • Failed 失败

  • Error 错误

expireTimeStamp

String

检查结果过期时间

message

String

信息,一般是执行错误的日志信息

clusterCheckStatus

clusterCheckStatus object

集群限制检查状态

addonCheckStatus

addonCheckStatus object

插件检查状态

nodeCheckStatus

nodeCheckStatus object

节点检查状态

表8 clusterCheckStatus

参数

参数类型

描述

phase

String

状态,取值如下

  • Init: 初始化

  • Running 运行中

  • Success 成功

  • Failed 失败

itemsStatus

Array of PreCheckItemStatus objects

检查项状态集合

表9 addonCheckStatus

参数

参数类型

描述

phase

String

状态,取值如下

  • Init: 初始化

  • Running 运行中

  • Success 成功

  • Failed 失败

itemsStatus

Array of PreCheckItemStatus objects

检查项状态集合

表10 nodeCheckStatus

参数

参数类型

描述

phase

String

状态,取值如下

  • Init: 初始化

  • Running 运行中

  • Success 成功

  • Failed 失败

nodeStageStatus

Array of NodeStageStatus objects

节点检查状态

表11 NodeStageStatus

参数

参数类型

描述

nodeInfo

NodeInfo object

节点信息

itemsStatus

Array of PreCheckItemStatus objects

检查项状态集合

表12 NodeInfo

参数

参数类型

描述

uid

String

节点UID

name

String

节点名称

status

String

状态

nodeType

String

节点类型

表13 PreCheckItemStatus

参数

参数类型

描述

name

String

检查项名称

kind

String

检查项类型,取值如下

  • Exception: 异常类,需要用户解决

  • Risk:风险类,用户确认后可选择跳过

group

String

检查项分组,取值如下

  • LimitCheck: 集群限制检查

  • MasterCheck:控制节点检查

  • NodeCheck:用户节点检查

  • AddonCheck:插件检查

  • ExecuteException:检查流程错误

level

String

检查项风险级别,取值如下

  • Info: 提示级别

  • Warning:风险级别

  • Fatal:严重级别

phase

String

状态,取值如下

  • Init: 初始化

  • Running 运行中

  • Success 成功

  • Failed 失败

message

String

提示信息

riskSource

riskSource object

风险项

errorCodes

Array of strings

错误码集合

表14 riskSource

参数

参数类型

描述

configurationRisks

Array of configurationRisks objects

配置风险项

deprecatedAPIRisks

Array of deprecatedAPIRisks objects

废弃API风险

nodeRisks

Array of nodeRisks objects

节点风险

addonRisks

Array of addonRisks objects

插件风险

表15 configurationRisks

参数

参数类型

描述

package

String

组件名称

sourceFile

String

涉及文件路径

nodeMsg

String

节点信息

field

String

参数值

operation

String

修改操作类型

originalValue

String

原始值

value

String

当前值

表16 deprecatedAPIRisks

参数

参数类型

描述

url

String

请求路径,如/apis/policy/v1beta1/podsecuritypolicies

userAgent

String

客户端信息

表17 nodeRisks

参数

参数类型

描述

NodeID

String

用户节点ID

表18 addonRisks

参数

参数类型

描述

addonTemplateName

String

插件模板名称

alias

String

插件别名

请求示例

响应示例

状态码: 200

表示获取集群升级前检查任务详情成功。

{
  "kind" : "PreCheckTask",
  "apiVersion" : "v3",
  "metadata" : {
    "uid" : "f61e008c-1600-41c0-9bde-121de5a30660",
    "creationTimestamp" : "2023-11-25 07:20:04.592972 +0000 UTC",
    "updateTimestamp" : "2023-11-25 07:21:05.518966 +0000 UTC"
  },
  "spec" : {
    "clusterVersion" : "v1.19.16-r4",
    "targetVersion" : "v1.23.5-r0"
  },
  "status" : {
    "phase" : "Success",
    "expireTimeStamp" : "2023-11-25 08:21:05.518966 +0000 UTC",
    "clusterCheckStatus" : {
      "phase" : "Success",
      "itemsStatus" : [ {
        "name" : "DeprecatedApiCheck",
        "kind" : "Risk",
        "group" : "LimitCheck",
        "level" : "Info",
        "phase" : "Success",
        "message" : "check item succeed",
        "riskSource" : { }
      }, {
        "name" : "NodeContainerdPodRestartRisk",
        "kind" : "Risk",
        "group" : "LimitCheck",
        "level" : "Warning",
        "phase" : "Success",
        "message" : "check item succeed",
        "riskSource" : { }
      }, {
        "name" : "ResiduePackageVersion",
        "kind" : "Exception",
        "group" : "LimitCheck",
        "level" : "Fatal",
        "phase" : "Success",
        "message" : "check item succeed",
        "riskSource" : { }
      } ]
    },
    "addonCheckStatus" : {
      "phase" : "Success",
      "itemsStatus" : [ {
        "name" : "AddonLimit",
        "kind" : "Exception",
        "group" : "AddonCheck",
        "level" : "Warning",
        "phase" : "Success",
        "message" : "check item succeed",
        "riskSource" : { }
      }, {
        "name" : "CoreDNSConfLimit",
        "kind" : "Exception",
        "group" : "AddonCheck",
        "level" : "Fatal",
        "phase" : "Success",
        "message" : "check item succeed",
        "riskSource" : { }
      } ]
    },
    "nodeCheckStatus" : {
      "phase" : "Success"
    }
  }
}

SDK代码示例

SDK代码示例如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.cce.v3.region.CceRegion;
import com.huaweicloud.sdk.cce.v3.*;
import com.huaweicloud.sdk.cce.v3.model.*;


public class ShowAutopilotPreCheckSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        CceClient client = CceClient.newBuilder()
                .withCredential(auth)
                .withRegion(CceRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowAutopilotPreCheckRequest request = new ShowAutopilotPreCheckRequest();
        request.withClusterId("{cluster_id}");
        request.withTaskId("{task_id}");
        try {
            ShowAutopilotPreCheckResponse response = client.showAutopilotPreCheck(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcce.v3.region.cce_region import CceRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcce.v3 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = CceClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CceRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ShowAutopilotPreCheckRequest()
        request.cluster_id = "{cluster_id}"
        request.task_id = "{task_id}"
        response = client.show_autopilot_pre_check(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := cce.NewCceClient(
        cce.CceClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ShowAutopilotPreCheckRequest{}
	request.ClusterId = "{cluster_id}"
	request.TaskId = "{task_id}"
	response, err := client.ShowAutopilotPreCheck(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

表示获取集群升级前检查任务详情成功。

错误码

请参见错误码