概述
kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。通过 kubectl,你可以部署应用、检查和管理集群资源、查看日志等。基本语法
- command:指定要执行的操作,如
get、create、delete - TYPE:资源类型,如
pods、services、deployments - NAME:资源名称(可选)
- flags:可选参数,如
-n namespace
常用命令速查表
集群信息
上下文管理
资源查看(get)
基本查看
使用标签选择器
查看所有资源类型
资源详情(describe)
describe 输出包括:
- 基本信息(名称、命名空间、标签)
- 状态信息
- 事件(Events)- 对于调试非常有用
资源创建(create/apply)
使用 YAML 文件
快速创建(命令行)
生成 YAML 模板
资源更新
使用 apply
使用 edit
使用 patch
使用 set
资源删除(delete)
日志查看(logs)
执行命令(exec)
端口转发(port-forward)
文件复制(cp)
扩缩容(scale)
滚动更新
资源管理
资源配额查看
标签管理
污点和容忍
调试技巧
查看事件
资源诊断
网络诊断
输出格式化
自定义列
JSONPath
常用别名配置
在~/.bashrc 或 ~/.zshrc 中添加:
总结
| 操作类型 | 命令 | 示例 |
|---|---|---|
| 查看资源 | get | kubectl get pods -o wide |
| 查看详情 | describe | kubectl describe pod nginx |
| 创建资源 | create/apply | kubectl apply -f deploy.yaml |
| 更新资源 | edit/patch/set | kubectl set image deploy/nginx nginx=nginx:1.22 |
| 删除资源 | delete | kubectl delete pod nginx |
| 查看日志 | logs | kubectl logs -f nginx |
| 执行命令 | exec | kubectl exec -it nginx -- /bin/bash |
| 端口转发 | port-forward | kubectl port-forward pod/nginx 8080:80 |
| 扩缩容 | scale | kubectl scale deploy nginx --replicas=3 |
| 滚动更新 | rollout | kubectl rollout restart deploy/nginx |
- 多使用
--help查看命令帮助 - 善用
-o yaml和--dry-run=client学习资源定义 - 配置命令自动补全提高效率
- 熟练使用
describe和logs进行问题排查