Updated on 2026-09-02 GMT+08:00

Upgrading a Cluster Kernel

Function

This API is used to upgrade the version of an Elasticsearch or OpenSearch cluster to optimize the version and enhance functions.

The following upgrade types are supported:

  • During a same-version upgrade, kernel patches are updated for a cluster. The cluster is upgraded to the latest image of the current version to fix known issues or optimize performance. For example, if the current cluster version is 7.10.2(7.10.2_24.3.3_0102), upon a same-version upgrade, the cluster will be upgraded to the latest image 7.10.2(7.10.2_24.3.4_0109) of version 7.10.2. (The version numbers used here are examples only.)

  • Cross-version upgrade: Upgrade the cluster version. The cluster will be upgraded to the latest image of the target version to enhance functions or incorporate versions. For example, if the current cluster version is 7.6.2(7.6.2_24.3.3_1224), upon a cross-version upgrade, the cluster will be upgraded to the latest image 7.10.2(7.10.2_24.3.4_0109) of version 7.10.2. (The version numbers used here are examples only.)

  • Cross-engine upgrade: Change an Elasticsearch cluster to an OpenSearch cluster. Cross-engine upgrade means to upgrade an Elasticsearch cluster to the latest image of the target OpenSearch version. For example, if the Elasticsearch cluster version is 7.10.2(7.10.2_24.3.3_0102), upon a cross-engine upgrade, the Elasticsearch cluster will be upgraded to the latest image 1.3.6(1.3.6_24.3.4_0109) of OpenSearch 1.3.6. (The version numbers used here are examples only.) The function is not supported currently.

Constraints

  • Only Elasticsearch/OpenSearch clusters are supported.

  • Up to 20 clusters can be upgraded at the same time.

  • Data migration is involved during the upgrade. The timeout threshold for data migration of a single node is 48 hours. If the timeout occurs, the upgrade fails. When the cluster data volume is large, manually adjust the data migration rate and avoid operations during peak hours.

Calling Method

For details, see Calling APIs.

URI

POST /v1.0/{project_id}/clusters/{cluster_id}/inst-type/{inst_type}/image/upgrade

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Definition

Project ID. For details about how to obtain the project ID and name, see Obtaining the Project ID and Name.

Constraints

N/A

Range

Project ID of an account. The value contains 32 characters, consisting of lowercase letters and digits.

Default Value

N/A

cluster_id

Yes

String

Definition

ID of the cluster to be upgraded. For details about how to obtain the cluster ID, see Obtaining the Cluster ID.

Constraints

N/A

Range

The value is a UUID containing 36 characters.

Default Value

N/A

inst_type

Yes

String

Definition:

Types of nodes to be upgraded.

Constraints:

N/A

Value range:

Currently, only all is supported, indicating all nodes.

Default value:

N/A

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

target_image_id

Yes

String

Definition:

ID of the target image version. For how to obtain this value, see Obtaining the Target Image ID.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

upgrade_type

Yes

String

Definition:

Upgrade type.

Constraints:

N/A

Value range:

  • same: same-version upgrade.

  • cross: cross-version upgrade.

  • cross-engine: cross-engine upgrade.

Default value:

N/A

indices_backup_check

Yes

Boolean

Definition:

Whether to check full index snapshots. Snapshots help prevent potential data loss caused by upgrade failures.

Constraints:

CSS cannot check the content or backup times of snapshots. You should manually check existing snapshots. If any of them is over one month old, create the latest snapshot.

Value range:

  • true: Verify the load.

  • false: Do not verify the load.

Default value:

true

agency

Yes

String

Definition

Agency name. After a node is upgraded, NICs need to be reattached to it. To do that, you must have the permission to access VPC resources. By configuring an IAM agency, you can authorize CSS to access its VPC resources through an associated account.

Constraints

N/A

Range

The agency name can contain at most 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.

Default Value

N/A

cluster_load_check

No

Boolean

Definition:

Whether to check the cluster load. and reduce the likelihood of a cluster upgrade failure caused by an overload.

The check items are as follows:

  • nodes.thread_pool.search.queue < 1000: Check that the maximum number of requests in the search queue is less than 1000.

  • nodes.thread_pool.write.queue < 200: Check that the maximum number of requests in the write queue is less than 200.

  • nodes.process.cpu.percent < 90: Check that the maximum CPU usage of cluster nodes is less than 90%.

  • nodes.os.cpu.load_average/Number of vCPUs < 80%: Check that the number of running processes plus the number of processes waiting for CPUs is less than 80/ %of the total number of vCPUs.

  • If any of the results is abnormal, wait until the load drops or actively optimize it before performing the upgrade.

Constraints:

N/A

Value range:

  • true: The platform evaluates the cluster load.

  • false: The platform does not evaluate the cluster load.

Default value:

true

batch_size

No

Integer

Definition

Data migration concurrency, in nodes. Increasing the data migration concurrency can speed up the upgrade process. However, data migration consumes I/O performance. The more nodes participate in concurrent data migration, the higher the cluster load, which may affect cluster performance.

Constraints

N/A

Range

1 to half of the number of data nodes, rounded down.

Default Value

1

Response Parameters

Status code: 200

Request succeeded.

None

Example Requests

Perform a same-version upgrade.

POST https://{Endpoint}/v1.0/{project_id}/clusters/4f3deec3-efa8-4598-bf91-560aad1377a3/inst-type/all/image/upgrade

{
  "target_image_id" : "{target_image_id}",
  "upgrade_type" : "same",
  "indices_backup_check" : true,
  "agency" : "css-test-agency",
  "cluster_load_check" : true
}

Example Responses

None

Status Codes

Status Code

Description

200

Request succeeded.

400

Invalid request.

The client should not repeat the request without modifications.

409

The request cannot be processed due to a conflict.

This status code indicates that the resource that the client attempts to create already exits, or the requested update failed due to a conflict.

412

The server did not meet one of the preconditions contained in the request.

Error Codes

See Error Codes.