Cordon and Uncordon Pools
Explore this Page
- Overview
- Requirements
- Cordon a Pool
- Uncordon a Pool
- Typical Use Cases
- Best Practices
- Benefits of Pool Cordon
Overview
The Cordon Pools feature in DataCore Puls8 lets you maintain application availability and data integrity during maintenance or troubleshooting by temporarily preventing new workloads from being scheduled on a specific storage pool.
By cordoning a pool, you can stop the creation of new replicas, snapshots, restores, or imports on that pool while existing data and services continue to operate normally. This controlled isolation helps avoid unexpected replica placement on pools that are under investigation, nearing capacity, or scheduled for hardware upgrades.
This document explains how to cordon and uncordon a Replicated PV Mayastor pool using the kubectl-puls8 plugin, including the available command options, recommended use cases, and key operational considerations.
Requirements
Before you cordon or uncordon pools, ensure the following requirements are met:
- DataCore Puls8 Installation with Replicated PV Mayastor Enabled: You must have DataCore Puls8 installed on your Kubernetes cluster with Replicated PV Mayastor enabled. Refer Installing DataCore Puls8 Documentation for more information.
- kubectl puls8 Plugin Installed: Ensure that the
kubectl-puls8plugin is installed and configured with the appropriate access to your DataCore Puls8 cluster.
Cordon a Pool
When you cordon a pool, you prevent new resources of the specified types from being scheduled on that pool. This allows you to safely isolate the pool while performing maintenance, troubleshooting, or preparing it for decommissioning. Existing data on the pool remains fully available and continues to serve workloads.
Cordon a pool to block new replicas and imports using kubectl-puls8. For Example: kubectl-puls8 mayastor
kubectl-puls8 mayastor cordon pool <pool-name> --replicas --imports
Flags
--replicas- Prevent new replicas from being created on the pool--snapshots- Prevent new snapshots from being scheduled--restores- Prevent new restore operations on the pool--imports- Prevent pool import operations.
Uncordon a Pool
When you uncordon a pool, you remove the scheduling restrictions and allow new resources to be created again. Use this when maintenance is complete or when you want the pool to resume normal operations.
kubectl-puls8 mayastor uncordon pool <pool-name> --replicas --imports
Flags
- The same flags apply as with cordon, letting you selectively enable scheduling for replicas, snapshots, restores, and imports.
- By default, running uncordon pool without flags will remove all existing cordons, restoring full scheduling for the pool.
Typical Use Cases
- Planned Maintenance: Isolate a pool before firmware upgrades or hardware replacement.
- Capacity Management: Prevent new replicas on a pool nearing its operational threshold.
- Controlled Decommissioning: Cordon, migrate replicas, and then retire the pool.
Best Practices
- Cordoning does not move existing replicas. It only blocks new scheduling.
- Verify sufficient uncordoned pools are available to maintain redundancy.
- Document each cordon action in your change-management system and uncordon promptly after maintenance.
Benefits of Pool Cordon
- Controlled Maintenance: Temporarily prevent new workloads on a pool during upgrades or troubleshooting.
- Improved Reliability: Avoid placing new replicas on pools with capacity or performance issues.
- Safe Decommissioning: Isolate a pool while migrating or scaling replicas to other pools.
- Operational Flexibility: Choose which resource types replicas, snapshots, restores, imports are affected.
- Business Continuity: Keep applications running smoothly during maintenance or investigations.
Learn More