Cordon Command in Kubernetes

  • Post category:Kubernetes
  • Post last modified:July 26, 2024

Introduction:

Kubernetes, an open-source container orchestration platform, has revolutionized the deployment and management of containerized applications. With its advanced features and scalability, Kubernetes empowers developers to build and maintain highly resilient and fault-tolerant applications. One of the essential operations in Kubernetes is controlling the scheduling of pods on nodes. In this article, we will delve into the concept of “cordon” mode and explore how to utilize SSH commands effectively to manage node scheduling in Kubernetes.

Understanding Kubernetes Cordon Mode:

The cordon command in Kubernetes is a state in which a node is marked as unschedulable for new pods. It allows existing pods to continue running on the node, but new pods won’t be scheduled onto it. This feature is particularly useful during maintenance tasks, node troubleshooting, or when you want to drain a node to prepare for decommissioning or upgrades.

Benefits of Cordon Mode:

The cordon mode offers several advantages, including:

  • Avoiding new pod deployments on a specific node without affecting existing running pods.
  • Ensuring better node stability during maintenance or troubleshooting activities.
  • Preventing accidental deployments on a node that requires special attention.
  • Facilitating a controlled approach to node maintenance and scaling.

Using SSH to Cordon Kubernetes Nodes:

To cordon a Kubernetes node using SSH, follow these steps:

Step 1: Identify the node:

Use the “kubectl get nodes” command to retrieve the list of available nodes.
Identify the target node you want to cordon.

kubectl get nodes

Step 2: Establish an SSH connection:

Open a terminal or command prompt on your local machine.
Execute the SSH command with the appropriate credentials and node IP address or hostname. Example:

ssh username@node-ip

Step 3: Cordon the node:

Once connected to the node, execute the following command to set it in cordon mode: Example:

kubectl cordon <node-name>

kubectl cordon

Verifying Cordon Status:

To verify the cordon status of a Kubernetes node, execute the following command:

kubectl get nodes

The output will display a “SchedulingDisabled” condition for the cordoned node.

Uncordoning Kubernetes Nodes:

When you’re done with the maintenance or troubleshooting activities, it’s essential to uncordon the node to restore its scheduling capabilities. To uncordon a node, follow these steps:

Step 1: SSH into the node as described above.

Step 2: Uncordon the node:

Execute the following command to remove the cordon status from the node: Example:

kubectl uncordon <node-name>

Utilizing SSH commands in Kubernetes cordon mode is a valuable skill that allows you to exert precise control over node scheduling, maintenance, and troubleshooting. By cordoning nodes, you can ensure a stable environment while performing necessary tasks. Remember to exercise caution when working with critical production systems and always follow best practices.

Mastering SSH commands in Kubernetes empowers you to harness the full potential of this powerful container orchestration platform, leading to better control, scalability, and reliability of your applications. With a solid understanding of cordon mode and its associated SSH commands, you can confidently navigate the complex Kubernetes landscape.

Ashutosh Dixit

I am currently working as a Senior Technical Support Engineer with VMware Premier Services for Telco. Before this, I worked as a Technical Lead with Microsoft Enterprise Platform Support for Production and Premier Support. I am an expert in High-Availability, Deployments, and VMware Core technology along with Tanzu and Horizon.

Leave a Reply