名称: kubectl-skill
描述: 通过 kubectl 命令执行和管理 Kubernetes 集群。查询资源、部署应用、调试容器、管理配置和监控集群健康。适用于处理 Kubernetes 集群、容器、部署或 Pod 诊断的场景。
许可证: MIT
元数据:
author: Dennis de Vaal d.devaal@gmail.com
version: "1.0.0"
keywords: "kubernetes,k8s,container,docker,deployment,pods,cluster"
compatibility: 需要 kubectl 二进制文件 (v1.20+) 以及连接到 Kubernetes 集群的活跃 kubeconfig。支持 macOS、Linux 和 Windows (WSL)。
使用 kubectl 命令行工具执行 Kubernetes 集群管理操作。
此技能使智能体能够:
- 查询资源 — 列出并获取 Pod、部署、服务、节点等的详细信息。
- 部署与更新 — 创建、应用、修补和更新 Kubernetes 资源。
- 调试与故障排除 — 查看日志、在容器中执行命令、检查事件。
- 管理配置 — 更新 kubeconfig、切换上下文、管理命名空间。
- 监控健康状态 — 检查资源使用情况、滚动更新状态、事件和 Pod 状态。
- 执行操作 — 扩缩容部署、排空节点、管理污点和标签。
~/.kube/config)。macOS:
brew install kubernetes-cli
Linux:
apt-get install -y kubectl # Ubuntu/Debian
yum install -y kubectl # RHEL/CentOS
验证安装:
kubectl version --client
kubectl cluster-info # 测试连接
kubectl get pods # 列出当前命名空间中的所有 Pod
kubectl get pods -A # 列出所有命名空间中的 Pod
kubectl get pods -o wide # 显示更多列信息
kubectl get nodes # 列出节点
kubectl describe pod POD_NAME # 获取详细信息和事件
kubectl logs POD_NAME # 获取日志
kubectl logs -f POD_NAME # 实时跟踪日志 (类似 tail -f)
kubectl logs POD_NAME -c CONTAINER # 查看特定容器的日志
kubectl logs POD_NAME --previous # 查看上一个容器的日志
kubectl exec -it POD_NAME -- /bin/bash # 进入交互式 Shell
kubectl exec POD_NAME -- COMMAND # 运行单条命令
kubectl apply -f deployment.yaml # 应用配置
kubectl create -f deployment.yaml # 创建资源
kubectl apply -f deployment.yaml --dry-run=client # 测试配置
kubectl set image deployment/APP IMAGE=IMAGE:TAG # 更新镜像
kubectl scale deployment/APP --replicas=3 # 扩缩容 Pod
kubectl rollout status deployment/APP # 检查滚动更新状态
kubectl rollout undo deployment/APP # 回滚
kubectl config view # 查看 kubeconfig
kubectl config get-contexts # 列出所有上下文
kubectl config use-context CONTEXT # 切换上下文
# 1. 识别问题
kubectl describe pod POD_NAME
# 2. 检查日志
kubectl logs POD_NAME
kubectl logs POD_NAME --previous
# 3. 执行调试命令
kubectl exec -it POD_NAME -- /bin/bash
# 4. 检查事件
kubectl get events --sort-by='.lastTimestamp'
# 1. 更新镜像
kubectl set image deployment/MY_APP my-app=my-app:v2
# 2. 监控滚动更新
kubectl rollout status deployment/MY_APP -w
# 3. 验证
kubectl get pods -l app=my-app
# 4. 必要时回滚
kubectl rollout undo deployment/MY_APP
# 1. 排空节点 (驱逐所有 Pod)
kubectl drain NODE_NAME --ignore-daemonsets
# 2. 执行维护操作
# ...
# 3. 恢复节点上线
kubectl uncordon NODE_NAME
--output (-o) 标志支持多种格式:
table — 默认表格格式wide — 扩展表格,包含更多列json — JSON 格式 (可与 jq 配合使用)yaml — YAML 格式jsonpath — JSONPath 表达式custom-columns — 自定义输出列name — 仅显示资源名称示例:
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
-n, --namespace=<ns> # 在指定命名空间中操作
-A, --all-namespaces # 在所有命名空间中操作
--context=<context> # 使用指定的 kubeconfig 上下文
-o, --output=<format> # 输出格式 (json, yaml, table 等)
--dry-run=<mode> # 试运行模式 (none, client, server)
-l, --selector=<labels> # 按标签筛选
--field-selector=<selector> # 按字段筛选
-v, --v=<int> # 详细程度级别 (0-9)
--dry-run=client — 客户端快速验证 (安全地测试命令)--dry-run=server — 服务端验证 (更准确)--dry-run=none — 实际执行 (默认)建议先使用 --dry-run=client 进行测试:
kubectl apply -f manifest.yaml --dry-run=client
如需详细的参考材料、逐命令文档、故障排除指南和高级工作流,请参阅:
- references/REFERENCE.md — 完整的 kubectl 命令参考
- scripts/ — 常用任务的辅助脚本
使用标签选择器进行批量操作:
bash
kubectl delete pods -l app=myapp
kubectl get pods -l env=prod,tier=backend
实时监控资源变化:
bash
kubectl get pods -w # 监控变化
使用 -A 标志查看所有命名空间:
bash
kubectl get pods -A # 查看所有 Pod
保存输出以便后续比较:
bash
kubectl get deployment my-app -o yaml > deployment-backup.yaml
删除前先检查:
bash
kubectl delete pod POD_NAME --dry-run=client
kubectl help # 获取通用帮助
kubectl COMMAND --help # 获取特定命令帮助
kubectl explain pods # 查看资源文档
kubectl explain pods.spec # 查看字段文档
KUBECONFIG — kubeconfig 文件路径 (可包含多个路径,用 : 分隔)KUBECTL_CONTEXT — 覆盖默认上下文版本: 1.0.0
许可证: MIT
兼容性: kubectl v1.20+, Kubernetes v1.20+