AGENT SKILL

kubectl-skill

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.

License 许可
MIT
最近更新
2026-03-07
Stars
★ 674
Forks
101

01 前言 Front Matter

name
kubectl-skill
license
MIT
metadata
{ "author": "Dennis de Vaal <d.devaal@gmail.com>", "version": "1.0.0", "keywords": "kubernetes,k8s,container,docker,deployment,pods,cluster" }
description
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.
compatibility
Requires kubectl binary (v1.20+) and active kubeconfig connection to a Kubernetes cluster. Works on macOS, Linux, and Windows (WSL).

02 资源文件 65

03 SKILL.md 正文

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:

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


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

04 同仓库更多 Skills

sundial-org
sundial-org/awesome-openclaw-skills

x-trends

Fetches current top trending topics on X (Twitter) for any country using public aggregators.

★ 674
sundial-org
sundial-org/awesome-openclaw-skills

vercel-react-best-practices

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

前端开发
★ 674
sundial-org
sundial-org/awesome-openclaw-skills

topydo

Manage todo.txt tasks using topydo CLI. Add, list, complete, prioritize, tag, and organize tasks with dependencies, due dates, recurrence, and projects. Use for any task management, todo lists, or when the user mentions tasks, todos, or todo.txt. Requires Python 3 and pip. Works on macOS, Linux, and Windows.

★ 674
sundial-org
sundial-org/awesome-openclaw-skills

openclaw-feeds

RSS news aggregator. Fetches headlines from curated feeds across three categories: news, games, and finance. Use when the user asks about current news, headlines, what's happening, what's going on, or says "what's up in news", "what's up in finance", "what's up in games", or the German equivalents "was geht mit nachrichten", "was geht mit money", "was geht mit gaming". Also activates for requests like "give me a news rundown", "latest headlines", "market news", "gaming news", "tech news", "finance roundup", or "briefing". Returns structured JSON from public RSS feeds — no API keys, no web search needed.

★ 674
sundial-org
sundial-org/awesome-openclaw-skills

octolens

Query and analyze brand mentions from Octolens API. Use when the user wants to fetch mentions, track keywords, filter by source platforms (Twitter, Reddit, GitHub, LinkedIn, etc.), sentiment analysis, or analyze social media engagement. Supports complex filtering with AND/OR logic, date ranges, follower counts, and bookmarks.

开发工程师后端与接口
★ 674
sundial-org
sundial-org/awesome-openclaw-skills

lmstudio-subagents

Reduces token usage from paid providers by offloading work to local LM Studio models. Use when: (1) Cutting costs—use local models for summarization, extraction, classification, rewriting, first-pass review, brainstorming when quality suffices, (2) Avoiding paid API calls for high-volume or repetitive tasks, (3) No extra model configuration—JIT loading and REST API work with existing LM Studio setup, (4) Local-only or privacy-sensitive work. Requires LM Studio 0.4+ with server (default :1234). No CLI required.

后端与接口
★ 674