Compute
Elastic Cloud Server
Huawei Cloud Flexus
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Networking
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Management & Governance
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
OneAccess
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
IAM Identity Center
Cloud Operations Center
Resource Governance Center
Migration
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Analytics
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
Data Lake Factory
DataArts Lake Formation
IoT
IoT Device Access
Others
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Security & Compliance
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Edge Security
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Web3 Node Engine Service
Media Services
Media Processing Center
Video On Demand
Live
SparkRTC
MetaStudio
Storage
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service Turbo
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Databases
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
Multi-Site High Availability Service
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Business Applications
Workspace
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Video Intelligent Analysis Service
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Content Delivery & Edge Computing
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Intelligent EdgeCloud
Solutions
SAP Cloud
High Performance Computing
Developer Services
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
CodeArts Repo
Cloud Application Engine
MacroVerse aPaaS
KooMessage
KooPhone
KooDrive
On this page

Show all

Help Center/ Cloud Container Engine/ API Reference (ME-Abu Dhabi Region)/ Appendix/ Specifying Add-ons to Be Installed During Cluster Creation

Specifying Add-ons to Be Installed During Cluster Creation

Updated on 2023-06-27 GMT+08:00

When creating a cluster, you can add a key-value pair to annotations of the metadata field in the request body to install an add-on in the cluster. The key is cluster.install.addons/install, and the value is a JSON array of AddonTemplate.

Table 1 Value data structure

Parameter

Mandatory

Type

Description

Value

Yes

JSON array of AddonTemplate string

Add-on to be installed in the cluster. If this parameter is not specified, the coredns and storage-driver add-ons are installed by default for clusters of Kubernetes 1.13 and earlier versions, and the coredns, everest, and npd add-ons are installed by default for clusters of Kubernetes 1.15 and later versions. For details, see Table 2.

Table 2 Data structure of the AddonTemplate field

Parameter

Mandatory

Type

Description

addonTemplateName

Yes

String

Add-on name.

The value can be coredns, autoscaler, gpu-beta, or storage-driver.

version

No

String

Add-on version.

To view the add-on version information, log in to the CCE console, click Add-ons in the navigation pane. Click the target add-on name. On the Version History tab page, you can view the versions of the add-on. If this parameter is left blank, the latest version is used by default.

values

No

Json Map

Parameters to be set for installing an add-on.

  • coredns: For details, see Table 3.
  • autoscaler: For details, see Table 7.
  • gpu-beta: For details, see Table 9.
NOTE:

You do not need to set this parameter when installing the storage-driver add-on.

Table 3 Special key-value pairs of the coredns values parameters

Parameter

Mandatory

Type

Description

flavor

Yes

flavor object

Add-on specifications.

custom

Yes

custom object

Custom coredns parameters.

Table 4 Data structure of the flavor field

Parameter

Mandatory

Type

Description

description

Yes

String

Specification description.

name

Yes

String

Flavor name.

replicas

Yes

Integer

Number of pods.

resources

Yes

resource object

Add-on resources.

Table 5 Data structure of the resource field

Parameter

Mandatory

Type

Description

name

Yes

String

Resource name.

limitsCpu

Yes

String

CPU quota limit.

limitsMem

Yes

String

Memory quota limit.

requestsCpu

Yes

String

Requested CPU.

requestsMem

Yes

String

Requested memory.

Table 6 Data structure of the custom field

Parameter

Mandatory

Type

Description

stub_domains

No

Json Map

JSON map that uses the DNS suffix key (such as acme.local) and the value composed of the JSON array of the DNS IP address.

upstream_nameservers

No

Json Array

The value of this parameter replaces the name server value obtained from /etc/resolv.conf of the node by default. Restriction: A maximum of three upstream name servers can be specified.

tenant_id

Yes

String

Project ID.

Table 7 Special key-value pairs of the autoscaler values parameters

Parameter

Mandatory

Type

Description

flavor

Yes

flavor Object

Add-on specifications.

custom

Yes

custom object

Custom autoscaler parameters.

Table 8 Data structure of the custom field

Parameter

Mandatory

Type

Description

coresTotal

Yes

Integer

Maximum and minimum number of cores of a cluster. The format is <min>:<max>. The autoscaler add-on performs cluster scaling within this range.

maxEmptyBulkDeleteFlag

Yes

Integer

Maximum number of empty nodes that can be deleted at a time.

maxNodesTotal

Yes

Integer

Maximum number of nodes in all node groups. The autoscaler add-on performs cluster scaling within this range.

memoryTotal

Yes

Integer

Maximum and minimum size of memory of a cluster. The format is <min>:<max>. The autoscaler add-on performs cluster scaling within this range.

scaleDownDelayAfterAdd

Yes

Integer

Interval for performing scale-down evaluation after a scale-up.

scaleDownDelayAfterDelete

Yes

Integer

Interval for performing scale-down evaluation after nodes are deleted. The default value is scanInterval.

scaleDownDelayAfterFailure

Yes

Integer

Interval for performing scale-down evaluation after a scale-down failure.

scaleDownEnabled

Yes

Boolean

Whether to enable cluster scaling down.

scaleDownUnneededTime

Yes

Integer

Time waited to start a scale-down after a node has reached the scale-down threshold.

scaleDownUtilizationThreshold

Yes

Float

Threshold percentage of the total CPU or memory occupied by all pods running on the node to the allocatable resources on the node. When the actual percentage is lower than this threshold, node scale-down is triggered.

scaleUpCpuUtilizationThreshold

Yes

Float

CPU usage threshold for triggering scale-up.

scaleUpMemUtilizationThreshold

Yes

Float

Memory usage threshold for triggering scale-up.

scaleUpUnscheduledPodEnabled

Yes

Boolean

Scale-up is triggered when there are unscheduled pods.

scaleUpUtilizationEnabled

Yes

Boolean

Scale-up is triggered when the resource usage reaches the threshold.

tenant_id

Yes

String

Project ID.

unremovableNodeRecheckTimeout

Yes

Integer

Interval for checking whether a node can be removed.

Table 9 Special Key-Value in values of AddonTemplate (GPU-beta)

Parameter

Mandatory

Type

Description

custom

Yes

custom object

Customer parameters of gpu-beta.

Table 10 Data structure of the custom field

Parameter

Mandatory

Type

Description

is_driver_from_nvidia

Yes

Boolean

Whether to use the NVIDIA driver.

Set this parameter to true.

nvidia_driver_download_url

Yes

String

Driver downloading URL.

Table 11 Data structure of the spec field

Parameter

Mandatory

Type

Description

type

Yes

String

Cluster type. Possible values:

  • VirtualMachine: The cluster is a hybrid cluster.

    A hybrid cluster manages a group of node resources based on Kubernetes. It can manage VMs, bare-metal machines, or a combination of both. Kubernetes automatically schedules containers onto available nodes. Before creating a containerized workload, you must have an available cluster.

  • ARM64: The cluster is a Kunpeng cluster.

    Containers in CCE's Kunpeng clusters can run on Kunpeng servers that use ARM architecture and Kunpeng processors. Kunpeng-accelerated cloud servers are easy to deploy and provide comparable scaling and scheduling performance as x86-based cloud servers.

flavor

Yes

String

Cluster flavor, which cannot be changed after the cluster is created.

  • cce.s1.small: small-scale, single-master hybrid cluster (≤ 50 nodes).
  • cce.s1.medium: medium-scale, single-master hybrid cluster (≤ 200 nodes).
  • cce.s1.large: large-scale, single-master hybrid cluster (≤ 1,000 nodes).
  • cce.s2.small: small-scale, high-availability hybrid cluster (≤ 50 nodes).
  • cce.s2.medium: medium-scale, high-availability hybrid cluster (≤ 200 nodes).
  • cce.s2.large: large-scale, high-availability hybrid cluster (≤ 1,000 nodes).
NOTE:
  • s1: single-master hybrid cluster.
  • s2: high-availability hybrid cluster.
  • dec: dedicated hybrid cluster specifications. For example, cce.dec.s1.small is a small-scale, single-master, dedicated hybrid cluster (≤ 50 nodes).
  • For example, ≤ 50 nodes indicates that the maximum number of nodes that can be managed by the cluster is 50.
  • A single-master cluster has only one master node. If the master node is down, the cluster will become unavailable and stop serving new workloads. However, existing workloads in the cluster are not affected.
  • A high-availability cluster has multiple master nodes. Faults in a single master node will not take the cluster down.

version

No

String

Cluster's baseline Kubernetes version. The latest version is recommended.

  • You can create clusters of two latest versions on the CCE console. To learn which cluster versions are available, choose Dashboard > Buy Cluster on the CCE console and check the Version parameter.
  • You can call APIs to create clusters of other versions. However, these clusters will be gradually brought offline. For details about the offline policy, see the official CCE announcement.
NOTE:

If this parameter is not set, the cluster of the latest version is created by default.

description

No

String

Cluster description, for example, which purpose the cluster is intended to serve. By default, this parameter is left unspecified. To modify cluster description after the cluster is created, call the API used to update information about a specified cluster or go to the cluster details page on the CCE console.

ipv6enable

No

Boolean

Whether the cluster supports IPv6. Clusters of version 1.15 and later support IPv6.

hostNetwork

Yes

HostNetwork object

Node networking parameters, including VPC and subnet ID. hostNetwork is mandatory because nodes in a cluster communicate with each other by using a VPC.

containerNetwork

Yes

ContainerNetwork object

Container networking parameters, including the container network model and container CIDR block.

authentication

No

Authentication object

Configurations of the cluster authentication mode.

kubernetesSvcIpRange

No

String

Service CIDR block or the IP address range which the kubernetes clusterIp must fall within. This parameter is available only for clusters of v1.11.7 and later.

billingMode

No

Integer

Billing mode of a cluster. Currently, only pay-per-use clusters can be created.

Value 0 indicates pay-per-use. If this parameter is left unspecified, the default value 0 is used.

masters

No

MasterSpec object

Advanced configurations of the master node

extendParam

No

Map<String,String>

Extended fields in the format of key-value pairs.

You can configure multi-AZ clusters and dedicated hybrid clusters, and create clusters in specific enterprise projects.

Request Example

{
  "kind" : "Cluster",
  "apiVersion" : "v3",
  "metadata" : {
    "name" : "mycluster",
    "labels" : {
      "foo" : "bar"
    },
    "annotations" : {
      "cluster.install.addons/install" : "[{\"addonTemplateName\":\"autoscaler\",\"version\":\"1.15.11\",\"values\":{\"flavor\":{\"description\":\"Has only one instance\",\"name\":\"Single\",\"replicas\":1,\"resources\":[{\"limitsCpu\":\"90m\",\"limitsMem\":\"200Mi\",\"name\":\"autoscaler\",\"requestsCpu\":\"50m\",\"requestsMem\":\"100Mi\"}]},\"custom\":{\"coresTotal\":32000,\"maxEmptyBulkDeleteFlag\":10,\"maxNodesTotal\":1000,\"memoryTotal\":128000,\"scaleDownDelayAfterAdd\":10,\"scaleDownDelayAfterDelete\":10,\"scaleDownDelayAfterFailure\":3,\"scaleDownEnabled\":false,\"scaleDownUnneededTime\":10,\"scaleDownUtilizationThreshold\":0.5,\"scaleUpCpuUtilizationThreshold\":1,\"scaleUpMemUtilizationThreshold\":1,\"scaleUpUnscheduledPodEnabled\":true,\"scaleUpUtilizationEnabled\":true,\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\",\"unremovableNodeRecheckTimeout\":5}}},{\"addonTemplateName\":\"coredns\",\"version\":\"1.15.3\",\"values\":{\"flavor\":{\"description\":\"Has two instances\",\"name\":2500,\"replicas\":2,\"resources\":[{\"limitsCpu\":\"500m\",\"limitsMem\":\"512Mi\",\"name\":\"coredns\",\"requestsCpu\":\"500m\",\"requestsMem\":\"512Mi\"}]},\"custom\":{\"stub_domains\":{},\"upstream_nameservers\":[],\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\"}}},{\"addonTemplateName\":\"gpu-beta\",\"version\":\"1.1.7\",\"values\":{\"custom\":{\"is_driver_from_nvidia\":true,\"nvidia_driver_download_url\":\"https://us.download.nvidia.com/tesla/396.37/NVIDIA-Linux-x86_64-396.37.run\"}}},{\"addonTemplateName\":\"storage-driver\",\"version\":\"\"}]"
    }
  },
  "spec" : {
    "type" : "VirtualMachine",
    "flavor" : "cce.s1.small",
    "version" : "v1.15.11",
    "description" : "this is a demo cluster",
    "hostNetwork" : {
      "vpc" : "1cb74d47-8e09-4d14-a065-75f4fc03e5eb",
      "subnet" : "d44c089c-fbdc-49b3-ae8f-7b42c64219cf"
    },
    "containerNetwork" : {
      "mode" : "overlay_l2",
      "cidr" : "172.16.0.0/16"
    },
    "extendParam" : {
      "foo" : "bar"
    }
  }
}

We use cookies to improve our site and your experience. By continuing to browse our site you accept our cookie policy. Find out more

Feedback

Feedback

Feedback

0/500

Selected Content

Submit selected content with the feedback