kubectl 基础
kubectl 是你和 Kubernetes 集群对话的命令行工具。本章梳理最高频的命令,记住它们就够应付日常 80% 的操作。
1. 通用结构
kubectl <动作> <资源类型> <名称> [选项]常见"动作":get、describe、apply、delete、logs、exec、create、explain。
2. get:查看资源
# 查看所有 Pod
kubectl get pods
# 看更详细信息(IP、所在节点)
kubectl get pods -o wide
# 看所有命名空间的服务
kubectl get svc -A
# 实时刷新
kubectl get pods -w💡记不住资源缩写?
kubectl api-resources 会列出所有资源类型及其缩写(如 po=pod、svc=service、deploy=deployment)。kubectl get po 和 kubectl get pods 等价。
3. describe:查看详情与事件
describe 是排障第一步,它会列出资源的配置、状态、关联事件(Events)。
kubectl describe pod nginx
# 末尾的 Events 段常能直接看出调度失败、镜像拉取失败等原因4. apply:声明式创建/更新
apply 把 YAML 文件描述的期望状态提交给集群,已存在则更新,不存在则创建。
# 创建或更新
kubectl apply -f deployment.yaml
# 一次提交多个文件/目录
kubectl apply -f ./manifests/
# 预览变更而不真正执行(强烈推荐)
kubectl apply -f deployment.yaml --dry-run=serverℹ️apply 优先于 create
create 只能新建,apply 才是日常推荐的声明式方式。配合 Git 管理 YAML,即可实现"基础设施即代码"。
5. logs:查看日志
# 查看 Pod 主容器日志
kubectl logs nginx
# 多容器 Pod 需指定容器名
kubectl logs nginx -c app
# 跟踪新日志(类似 tail -f)
kubectl logs -f nginx
# 看上一次崩溃的容器日志(排障利器)
kubectl logs nginx --previous6. exec:进入容器执行命令
# 在 Pod 里执行命令
kubectl exec nginx -- ls /usr/share/nginx/html
# 进入交互式 shell(像 ssh 进容器)
kubectl exec -it nginx -- /bin/sh⚠️exec 进容器只是排障手段
不要依赖 exec 进去改配置来"修"环境——容器随时可能被重建。正确做法是用 ConfigMap/Secret 声明配置,再用 kubectl apply 更新。
7. 删除资源
# 按 YAML 删除
kubectl delete -f deployment.yaml
# 按名称删除
kubectl delete pod nginx
# 删除命名空间下所有 Pod
kubectl delete pods --all -n default🎯动手练
起一个 kubectl run debug --image=busybox --restart=Never -- sleep 3600,然后依次用 get、describe、logs、exec 观察它,最后删除。把这条命令链走通你就入门了。
小结
get看列表,describe看详情与事件apply -f是声明式创建/更新的主力logs看日志(加--previous看崩溃前),exec -it进容器排障- 下一章深入 Pod 与容器配置 →