| name | k8s-cluster-ops |
| description | 通过 kubectl 命令行工具管理 Kubernetes 集群,执行查询资源状态、部署应用、查看日志、调试容器、切换上下文和监控集群健康等操作。适用于日常运维、发布和故障排查。当用户询问集群状态、Pod/Deployment信息、查看日志、执行容器命令、切换集群或上下文,或使用 kubectl get/describe/logs/exec/apply 等相关命令短语时触发。 |
| license | MIT |
| metadata | {"author":"Dennis de Vaal <d.devaal@gmail.com>","version":"1.0.0","keywords":"kubernetes,k8s,container,docker,deployment,pods,cluster"} |
| compatibility | 需要 kubectl 二进制文件(v1.20+)以及已配置好的 kubeconfig 连接到 Kubernetes 集群。支持 macOS、Linux 和 Windows(WSL)。 |
kubectl 技能
使用 kubectl 命令行工具执行 Kubernetes 集群管理操作。
概述
此技能可以帮助 Agent 完成以下操作:
- 查询资源 — 列出和获取 Pod、Deployment、Service、Node 等资源的详细信息
- 部署与更新 — 创建、应用、补丁和更新 Kubernetes 资源
- 调试与排障 — 查看日志、在容器中执行命令、检查事件
- 管理配置 — 更新 kubeconfig、切换上下文、管理命名空间
- 监控健康 — 检查资源使用情况、滚动更新状态、事件和 Pod 状态
- 执行运维操作 — 扩缩 Deployment、腾空节点、管理污点和标签
前置条件
- kubectl 二进制文件已安装并在 PATH 中可用(v1.20+)
- kubeconfig 文件已配置集群凭证(默认路径:
~/.kube/config)
- 已建立与 Kubernetes 集群的网络连接
快速配置
安装 kubectl
macOS:
brew install kubernetes-cli
Linux:
apt-get install -y kubectl
yum install -y kubectl
验证安装:
kubectl version --client
kubectl cluster-info
常用命令
查询资源
kubectl get pods
kubectl get pods -A
kubectl get pods -o wide
kubectl get nodes
kubectl describe pod POD_NAME
查看日志
kubectl logs POD_NAME
kubectl logs -f POD_NAME
kubectl logs POD_NAME -c CONTAINER
kubectl logs POD_NAME --previous
在容器中执行命令
kubectl exec -it POD_NAME -- /bin/bash
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
kubectl rollout status deployment/APP
kubectl rollout undo deployment/APP
管理配置
kubectl config view
kubectl config get-contexts
kubectl config use-context CONTEXT
常见操作场景
调试 Pod
kubectl describe pod POD_NAME
kubectl logs POD_NAME
kubectl logs POD_NAME --previous
kubectl exec -it POD_NAME -- /bin/bash
kubectl get events --sort-by='.lastTimestamp'
发布新版本
kubectl set image deployment/MY_APP my-app=my-app:v2
kubectl rollout status deployment/MY_APP -w
kubectl get pods -l app=my-app
kubectl rollout undo deployment/MY_APP
节点维护准备
kubectl drain NODE_NAME --ignore-daemonsets
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>
-o, --output=<format>
--dry-run=<mode>
-l, --selector=<labels>
--field-selector=<selector>
-v, --v=<int>
试运行模式
--dry-run=client — 快速的客户端验证(安全测试命令)
--dry-run=server — 服务端验证(结果更准确)
--dry-run=none — 真正执行(默认行为)
建议始终先用 --dry-run=client 测试:
kubectl apply -f manifest.yaml --dry-run=client
进阶内容
如需详细的参考资料、逐条命令文档、故障排查指南和高级工作流,请参阅:
实用技巧
-
使用标签选择器进行批量操作:
kubectl delete pods -l app=myapp
kubectl get pods -l env=prod,tier=backend
-
实时监视资源变化:
kubectl get pods -w
-
使用 -A 参数查看所有命名空间:
kubectl get pods -A
-
导出配置以便日后对比:
kubectl get deployment my-app -o yaml > deployment-backup.yaml
-
删除前先做试运行确认:
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+