Yandex Cloud
Search
Discuss with expertTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • System Status
  • Marketplace
    • Featured
    • Infrastructure & Network
    • Data Platform
    • AI for business
    • Security
    • DevOps tools
    • Serverless
    • Monitoring & Resources
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
    • Price calculator
    • Pricing plans
  • Customer Stories
  • Documentation
  • Blog
© 2026 Direct Cursus Technology L.L.C.
Yandex Managed Service for Kubernetes
  • Comparing with other Yandex Cloud services
  • Getting started
    • All guides
    • Connecting to a node over SSH
    • Connecting to a node via OS Login
    • Updating Kubernetes
    • Configuring autoscaling
    • Activating a Kubernetes Terraform provider
    • Installing applications from Yandex Cloud Marketplace using Terraform
    • Working with private Docker image registries
      • Information about existing node groups
      • Creating a node group
      • Creating a group with nodes from a reserved instance pool
      • Connecting to a node over SSH
      • Connecting to a node via OS Login
      • Configuring autoscaling
      • Updating a node group
      • Node maintenance with zero resource loss
      • Managing Kubernetes node labels
      • Deleting a node group
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes

In this article:

  • Using a reserved instance pool
  • Using a maintenance task
  1. Step-by-step guides
  2. Managing a node group
  3. Node maintenance with zero resource loss

Cluster node maintenance with zero resource loss

Written by
Yandex Cloud
View in Markdown
  • Using a reserved instance pool
  • Using a maintenance task

During maintenance and update, you may need to restart or recreate Managed Service for Kubernetes cluster nodes. In which case node resources become publicly available again and can be taken by other users.

Reservation is especially relevant for limited availability resources, such as GPUs. If the GPU configuration turns out occupied during the GPU node restart, the start will terminate with an error.

There are two ways for you to preserve your resources during maintenance:

  • Using a reserved instance pool: Suitable for any node restart or recreation scenarios.
  • Using a maintenance task: Suitable if there is a node maintenance task in Compute Cloud.

Using a reserved instance poolUsing a reserved instance pool

Warning

Reserved instance pools are billable: you pay for the whole unused volume of reserved computing resources of VMs, GPU clusters, and software accelerated networks according to the Yandex Compute Cloud pricing policy. For more information, see Using reserved instance pools.

The reserved instance pool feature is at the Preview stage.

Node resources can be reserved using a reserved instance pool. In this case, during node restart or recreation, its resources will remain in the pool and not go public: the node will start on exactly the same resources.

  1. Create a reserved instance pool of size 0 with a configuration of existing nodes, e.g., with required GPU parameters.

  2. Expand the pool to as many nodes as you need by activating the --allow-pending-slots resource wait option. This parameter allows you to add slots, even if there are not enough free resources in the availability zone temporarily.

    Slots that did not get enough resources during the expansion will enter the pending status.

  3. Attach the nodes of the existing Managed Service for Kubernetes cluster to the new pool.

The Managed Service for Kubernetes cluster nodes will occupy free slots in the pool. Next, the nodes will be started or recreated on the pool’s reserved resources.

Using a maintenance taskUsing a maintenance task

Warning

This zero resource loss maintenance method only suits scenarios where Compute Cloud has set a maintenance task.

If you want to restart or recreate a node with zero resource loss by yourself, use a reserved instance pool.

Compute Cloud performs periodical maintenance of the hardware your VMs need to operate. Sometimes maintenance implies restarting the GPU VMs.

To complete the maintenance task, GPU VM resources are reserved automatically and not made public again on restart: for maintenance it is enough to remove load from the node and perform a restart via Compute Cloud.

  1. To figure out which node requires maintenance, look up maintenance tasks.

  2. Make sure kubectl is connected to the right cluster and get a list of nodes:

    kubectl config current-context
    kubectl get nodes
    

    The node name in the command output matches the VM name in Compute Cloud.

  3. Evict the pods from the node using kubectl drain:

    kubectl drain <node_name> \
      --ignore-daemonsets \
      --delete-emptydir-data
    

    Where <node_name> is the Kubernetes node name.

    After the command is executed, the node will enter the SchedulingDisabled status: new pods will no longer be created on it, and current active pods will be evicted to other cluster nodes.

    For more on pod eviction, see Evicting pods from nodes.

  4. Run the maintenance task immediately. The VM will restart but Compute Cloud will keep the GPU resources assigned to it.

  5. Use the management console or this command to allow pods to be put on the node:

    kubectl uncordon <node_name>
    

    The node will once again become available for new pod scheduling.

Useful linksUseful links

  • Evicting pods from nodes
  • Maintenance of GPU VMs
  • Managing maintenance of GPU VMs
  • Creating a group with nodes from a Yandex Compute Cloud reserved instance pool

Was the article helpful?

Previous
Updating a node group
Next
Managing Kubernetes node labels
© 2026 Direct Cursus Technology L.L.C.