Volcengine Kubernetes Engine (VKE) provides the feature of elastic scheduled scale-out for node pools that consist of Elastic Scheduled Instances (ESI), allowing a single increase in the number of nodes within the node pools by the specified count within a specific time period or periodic increase at a specified interval. This topic introduces the usage scenarios and configuration methods of this feature.
Background
ESI is a type of pay-as-you-go instance provided by Volcano Engine IaaS that can be delivered according to a schedule. It is designed to ensure a stable supply of resources for elastic usage scenarios. After you finish the schedule configuration, instances can be automatically created as pay-as-you-go type within the specified delivery time period, but are charged as ESI. For details, see ESI overview. The cluster resource scale-out feature in VKE through ESI applies to the following scenarios:
- A predictable non-persistent resource demand peak
- Business scenarios where a large number of visits are expected in a short time period. In such cases, allocate more resources to critical cluster businesses during specific time periods to maintain high performance. Examples include major e-commerce promotions, live video streaming, holiday peak ticketing, and other similar scenarios.
- The business peaks that are predicted to occur periodically (daily, weekly, or monthly). When business workload peaks in a cluster always occur within a specific time period, you can use the elastic scheduled scale-out feature to scale out the cluster during that period. This ensures a stable resource supply and an optimal access experience. The peaks include the daily business peaks of online gaming, online education, big data analysis, and rendering businesses, and the monthly reconciliation peaks of financial services.
tip
- New ECS nodes created by elastic scheduled scale-out use the same instance type as configured for the node pool. For example, if the instance type for the node pool is set to ecs.g3i.large, the new ECS nodes will also use ecs.g3i.large.
- For details of the instance families supported by ESI, see ESI overview.
Prerequisites
Usage limits
- Elastic scheduled scale-out and cluster autoscaler cannot both be enabled.
- ESI cannot be reclaimed automatically (except for those reclaimed due to account arrears) after they are successfully delivered and added to the node pool. You can use the following methods to reclaim the instances:
- Disable or delete the scheduled scale-out job, and then enable cluster autoscaling to realize dynamic node scale-out or automatic node reclaim. For details, see Cluster autoscaler.
- You can create at most 10 scaling rules per node pool.
Procedure
Configuring CronJobs
After you configure a CronJob, which is a one-time scheduled scale-out task, the system will scale out the node pool with ESI within the specified delivery time period. Procedure:
- In the left navigation bar, click Cluster.
- On the cluster list page, click the target cluster.
- In the left navigation bar, click Nodes > Node pool.
- In the node pool list, find the target node pool and click ... > Scheduled scale-out to go to the Scheduled scale-out rule tab.
- Click Create scheduled scale-out rule to configure the scheduled scale-out specification settings.
warning
After you complete the initial elastic scheduled scale-out configuration, you can modify the configuration by clicking Scheduled scale-out again. The system applies the configuration changes as follows:
- If the configuration modification time is earlier than the Time to submit the scheduled order set in the initial configuration, the initial scheduled order has not been created. Therefore, the node pool will submit the scheduled order based on the latest parameters (those from the last modification) and complete the scheduled delivery.
- If the configuration modification time is later than the Time to submit the scheduled order set in the initial configuration:
- If you modify only parameters other than the Time to submit the scheduled order parameter: Because the scheduled order for the initial configuration has already been created, the new configuration will not impact the already submitted scheduled order. The new configuration applies only to the next scheduled order submission.
- If you modify the Time to submit the scheduled order parameter, the system will create a new scheduled order with your updated configuration, and the node pool will perform two scheduled deliveries.
Configuring periodic jobs
After you configure a periodic job, the system will periodically scale out the node pool with ESI within the specified time period. Procedure:
- In the left navigation bar, click Cluster.
- On the cluster list page, click the target cluster.
- In the left navigation bar, click Nodes > Node pool.
- In the node pool list, find the target node pool and click ... > Scheduled scale-out to go to the Scheduled scale-out rule tab.
- Click Create scheduled scale-out rule to configure the scheduled scale-out specification settings.
warning
After you complete the initial elastic scheduled scale-out configuration, you can modify the configuration by clicking Scheduled scale-out again. The system applies the configuration changes as follows:
- If the configuration modification time is earlier than the Time to submit the scheduled order for the first time set in the initial configuration, the initial scheduled order has not been created. Therefore, the node pool will submit the scheduled order based on the latest parameters (those from the last modification) and complete the scheduled delivery.
- If the configuration modification time is later than the Time to submit the scheduled order for the first time set in the initial configuration:
- If you modify only parameters other than the Time to submit the scheduled order for the first time parameter: Because the scheduled order for the initial configuration has already been created, the new configuration will not impact the already submitted scheduled order. The new configuration applies only to the next scheduled order submission.
- If you modify the Time to submit the scheduled order for the first time parameter, the system will create a new scheduled order with your updated configuration, and the node pool will perform two scheduled deliveries.
Subsequent operations
Manage elastic scheduled scale-out jobs
In the node pool list, click the name of the target node pool to enter the node pool details page. On the node details page, click the Scheduled scale-out rule tab to view the scheduled scale-out job details.
- Click Modify to view or modify the elastic scheduled scale-out job.
- Click Delete to delete the elastic scheduled scale-out job.
warning
You can modify the initial elastic scheduled scale-out configuration. The system applies the configuration changes as follows:
- If the configuration modification time is earlier than the Time to submit the scheduled order set in the initial configuration, the initial scheduled order has not been created. Therefore, the node pool will submit the scheduled order based on the latest parameters (those from the last modification) and complete the scheduled delivery.
- If the configuration modification time is later than the Time to submit the scheduled order set in the initial configuration:
- If you modify only parameters other than the Time to submit the scheduled order parameter: Because the scheduled order for the initial configuration has already been created, the new configuration will not impact the already submitted scheduled order. The new configuration applies only to the next scheduled order submission.
- If you modify the Time to submit the scheduled order parameter, the system will create a new scheduled order with your updated configuration, and the node pool will perform two scheduled deliveries.
Viewing the scaling details of the node pool
After an elastic scheduled scale-out is performed on the node pool, you can view the scaling logs of the node pool, which contain detailed scaling information.
- In the left navigation bar, click Nodes > Node pool.
- Click the name of the target node pool to enter the details page.
- Click the Scaling record tab to view the detailed autoscaling records of this node pool. These records include scaling activity, status, number of changed instances, number of instances after change, and other information.
- You can filter the scaling records based on conditions and time. Multiple filter conditions can be configured, and the relationship between them is AND. You can use the following keywords:
- Scaling record ID: Filter records by scaling record ID. You can find it in the Scaling activity column of the scaling records. For example, s-42ccnt.
- Node ID: Filter records by node ID. You can find node IDs in the Number of changed instances column of the scaling records.
- Scaling type: Filter records by scaling type. Supported options include Scale in and Scale out.
Viewing the scheduled orders of nodes
After an elastic scheduled scale-out is performed on a node pool, you can view the ID of the elastic scheduled order associated with each new node in the node list.
- In the left navigation bar, select Nodes > Node.
- In the node list, find the target node and view the ID of the scheduled order that is associated with the newly added node in the Elastic scheduled order ID column.