以下是 Kubernetes 常用命令的整理,涵盖集群管理、资源操作、调试排错等场景,帮助您快速掌握核心操作:
 
一、集群管理
 
| 命令 | 说明 | 
|---|
| kubectl cluster-info | 查看集群信息 | 
| kubectl config get-contexts | 列出所有上下文(集群配置) | 
| kubectl config use-context <context-name> | 切换集群或命名空间 | 
| kubectl get componentstatuses | 检查集群组件状态(如 scheduler、controller-manager) | 
 
二、资源管理
 
通用操作
 
| 命令 | 说明 | 
|---|
| kubectl get <resource> | 查看资源列表(如 pods,deployments,services) | 
| kubectl describe <resource> <name> | 查看资源详细信息(事件、状态等) | 
| kubectl create -f <file.yaml> | 通过 YAML 文件创建资源 | 
| kubectl apply -f <file.yaml> | 应用/更新资源配置 | 
| kubectl delete -f <file.yaml> | 删除 YAML 中定义的资源 | 
| kubectl delete <resource> <name> | 删除指定资源(如 pod/my-pod) | 
| kubectl edit <resource> <name> | 直接编辑资源配置(实时生效) | 
 
常用资源别名
 
- po: Pods
- deploy: Deployments
- svc: Services
- ns: Namespaces
- pv: PersistentVolumes
- pvc: PersistentVolumeClaims
三、部署与扩缩容
 
| 命令 | 说明 | 
|---|
| kubectl scale deploy/<name> --replicas=3 | 扩展 Deployment 的副本数 | 
| kubectl rollout status deploy/<name> | 查看部署状态(如滚动更新进度) | 
| kubectl rollout history deploy/<name> | 查看部署历史版本 | 
| kubectl rollout undo deploy/<name> | 回滚到上一个版本 | 
| kubectl set image deploy/<name> <container>=<new-image> | 更新容器镜像(触发滚动更新) | 
 
四、调试与日志
 
| 命令 | 说明 | 
|---|
| kubectl logs <pod-name> | 查看 Pod 日志 | 
| kubectl logs -f <pod-name> | 实时跟踪日志(类似 tail -f) | 
| kubectl exec -it <pod-name> -- /bin/sh | 进入 Pod 的 Shell 环境 | 
| kubectl port-forward <pod-name> 8080:80 | 将 Pod 端口转发到本地(如访问服务) | 
| kubectl top pod | 查看 Pod 资源使用(需安装 metrics-server) | 
| kubectl get events --sort-by=.metadata.creationTimestamp | 查看集群事件(按时间排序) | 
 
五、网络与服务
 
| 命令 | 说明 | 
|---|
| kubectl expose deploy/<name> --port=80 --type=NodePort | 创建 Service 暴露 Deployment | 
| kubectl get endpoints <service-name> | 查看 Service 关联的 Pod IP | 
| kubectl get ingress | 查看 Ingress 配置 | 
 
六、配置与存储
 
| 命令 | 说明 | 
|---|
| kubectl get configmaps | 查看所有 ConfigMap | 
| kubectl get secrets | 查看所有 Secret | 
| kubectl create secret generic <name> --from-file=<key>=<path> | 创建 Secret | 
 
七、高级操作
 
| 命令 | 说明 | 
|---|
| kubectl patch <resource> <name> -p '{"spec": {"replicas": 2}}' | 部分更新资源配置 | 
| kubectl label <resource> <name> key=value | 添加/修改标签 | 
| kubectl annotate <resource> <name> key=value | 添加/修改注解 | 
| kubectl get <resource> -o yaml > file.yaml | 导出资源配置到 YAML 文件 | 
| kubectl delete pod --force --grace-period=0 <pod-name> | 强制删除 Pod(慎用) | 
 
八、插件与工具
 
| 命令 | 说明 | 
|---|
| kubectl krew install <plugin> | 使用 Krew 安装插件(如 ctx,ns) | 
| kubectl helm install <chart> | 通过 Helm 安装应用(需安装 Helm) | 
 
常用示例场景
 
-  快速创建 Pod kubectl run nginx --image=nginx --port=80
 
-  查看所有命名空间的 Pod kubectl get pods -A
 
-  查看特定标签的 Pod kubectl get pods -l app=web
 
-  调试启动失败的 Pod kubectl describe pod/<name>  # 查看错误原因
kubectl logs <pod-name> -c <container-name>  # 查看指定容器日志