v1.0.0

kubectl

ddevaal ddevaal ← All skills

Execute and manage Kubernetes clusters via kubectl commands. Query resources, deploy applications, debug containers, manage configurations, and monitor cluster health. Use when working with Kubernetes clusters, containers, deployments, or pod diagnostics.

Downloads
1.2k
Stars
1
Versions
1
Updated
2026-02-24

Install

npx clawhub@latest install kubectl

Documentation

kubectl Skill

Execute Kubernetes cluster management operations using the kubectl command-line tool.

Overview

This skill enables agents to:

  • -Query Resources — List and get details about pods, deployments, services, nodes, etc.
  • -Deploy & Update — Create, apply, patch, and update Kubernetes resources
  • -Debug & Troubleshoot — View logs, execute commands in containers, inspect events
  • -Manage Configuration — Update kubeconfig, switch contexts, manage namespaces
  • -Monitor Health — Check resource usage, rollout status, events, and pod conditions
  • -Perform Operations — Scale deployments, drain nodes, manage taints and labels

Prerequisites

1. kubectl binary installed and accessible on PATH (v1.20+)

2. kubeconfig file configured with cluster credentials (default: ~/.kube/config)

3. Active connection to a Kubernetes cluster

Quick Setup

Install kubectl

macOS:
brew install kubernetes-cli
Linux:
apt-get install -y kubectl  # Ubuntu/Debian

yum install -y kubectl # RHEL/CentOS

Verify:
kubectl version --client

kubectl cluster-info # Test connection

Essential Commands

Query Resources

kubectl get pods                    # List all pods in current namespace

kubectl get pods -A # All namespaces

kubectl get pods -o wide # More columns

kubectl get nodes # List nodes

kubectl describe pod POD_NAME # Detailed info with events

View Logs

kubectl logs POD_NAME                # Get logs

kubectl logs -f POD_NAME # Follow logs (tail -f)

kubectl logs POD_NAME -c CONTAINER # Specific container

kubectl logs POD_NAME --previous # Previous container logs

Execute Commands

kubectl exec -it POD_NAME -- /bin/bash   # Interactive shell

kubectl exec POD_NAME -- COMMAND # Run single command

Deploy Applications

kubectl apply -f deployment.yaml         # Apply config

kubectl create -f deployment.yaml # Create resource

kubectl apply -f deployment.yaml --dry-run=client # Test

Update Applications

kubectl set image deployment/APP IMAGE=IMAGE:TAG  # Update image

kubectl scale deployment/APP --replicas=3 # Scale pods

kubectl rollout status deployment/APP # Check status

kubectl rollout undo deployment/APP # Rollback

Manage Configuration

kubectl config view                  # Show kubeconfig

kubectl config get-contexts # List contexts

kubectl config use-context CONTEXT # Switch context

Common Patterns

Debugging a Pod

1. Identify the issue

kubectl describe pod POD_NAME

2. Check logs

kubectl logs POD_NAME

kubectl logs POD_NAME --previous

3. Execute debug commands

kubectl exec -it POD_NAME -- /bin/bash

4. Check events

kubectl get events --sort-by='.lastTimestamp'

Deploying a New Version

1. Update image

kubectl set image deployment/MY_APP my-app=my-app:v2

2. Monitor rollout

kubectl rollout status deployment/MY_APP -w

3. Verify

kubectl get pods -l app=my-app

4. Rollback if needed

kubectl rollout undo deployment/MY_APP

Preparing Node for Maintenance

1. Drain node (evicts all pods)

kubectl drain NODE_NAME --ignore-daemonsets

2. Do maintenance

...

3. Bring back online

kubectl uncordon NODE_NAME

Output Formats

The --output (-o) flag supports multiple formats:

  • -table — Default tabular format
  • -wide — Extended table with additional columns
  • -json — JSON format (useful with jq)
  • -yaml — YAML format
  • -jsonpath — JSONPath expressions
  • -custom-columns — Define custom output columns
  • -name — Only resource names
Examples:
kubectl get pods -o json | jq '.items[0].metadata.name'

kubectl get pods -o jsonpath='{.items[*].metadata.name}'

kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase

Global Flags (Available to All Commands)

-n, --namespace=<ns>           # Operate in specific namespace

-A, --all-namespaces # Operate across all namespaces

--context=<context> # Use specific kubeconfig context

-o, --output=<format> # Output format (json, yaml, table, etc.)

--dry-run=<mode> # Dry-run mode (none, client, server)

-l, --selector=<labels> # Filter by labels

--field-selector=<selector> # Filter by fields

-v, --v=<int> # Verbosity level (0-9)

Dry-Run Modes

  • ---dry-run=client — Fast client-side validation (test commands safely)
  • ---dry-run=server — Server-side validation (more accurate)
  • ---dry-run=none — Execute for real (default)
Always test with --dry-run=client first:
kubectl apply -f manifest.yaml --dry-run=client

Advanced Topics

For detailed reference material, command-by-command documentation, troubleshooting guides, and advanced workflows, see:

  • -[references/REFERENCE.md](references/REFERENCE.md) — Complete kubectl command reference
  • -[scripts/](scripts/) — Helper scripts for common tasks

Helpful Tips

1. Use label selectors for bulk operations:

   kubectl delete pods -l app=myapp

kubectl get pods -l env=prod,tier=backend

2. Watch resources in real-time:

   kubectl get pods -w  # Watch for changes

3. Use -A flag for all namespaces:

   kubectl get pods -A  # See pods everywhere

4. Save outputs for later comparison:

   kubectl get deployment my-app -o yaml > deployment-backup.yaml

5. Check before you delete:

   kubectl delete pod POD_NAME --dry-run=client

Getting Help

kubectl help                      # General help

kubectl COMMAND --help # Command help

kubectl explain pods # Resource documentation

kubectl explain pods.spec # Field documentation

Environment Variables

  • -KUBECONFIG — Path to kubeconfig file (can include multiple paths separated by :)
  • -KUBECTL_CONTEXT — Override default context

Resources

  • -[Official kubectl Docs](https://kubernetes.io/docs/reference/kubectl/)
  • -[kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
  • -[Kubernetes API Reference](https://kubernetes.io/docs/reference/generated/kubernetes-api/)
  • -[Agent Skills Specification](https://agentskills.io/)

---

Version: 1.0.0 License: MIT Compatible with: kubectl v1.20+, Kubernetes v1.20+

Launch an agent with kubectl on Termo.