【K8S系列】Kubernetes常用 命令

以下为的 Kubernetes 超全常用命令文档,涵盖集群管理、资源操作、调试排错等核心场景,结合示例与解析, 高效运维 Kubernetes 环境。
一、集群与节点管理
1. 集群信息查看
- 查看集群基本信息kubectl cluster-info # 显示API Server、DNS等核心组件地址
- 查看当前上下文kubectl config current-context # 显示当前使用的集群上下文
- 切换上下文kubectl config use-context <context-name> # 用于多集群环境切换
2. 节点管理
- 列出所有节点状态kubectl get nodes # 显示节点名称、状态、版本等基本信息
- 查看节点详细信息kubectl describe node <node-name> # 包括资源分配(CPU/内存)、Pod分布等
- 监控节点资源使用kubectl top nodes # 需提前部署 Metrics Server
二、命名空间(Namespace)管理
1. 基本操作
- 查看所有命名空间kubectl get ns # 缩写形式,等同于 `kubectl get namespaces`
- 创建命名空间kubectl create ns <namespace-name> # 例如 `kubectl create ns test`
- 删除命名空间及资源kubectl delete ns <namespace-name> # 级联删除命名空间内所有资源
2. 命名空间切换
- 设置默认命名空间kubectl config set-context --current --namespace=<namespace> # 后续命令默认使用该命名空间
- 使用插件快速切换
 安装kubens后,执行kubens <namespace>切换当前命名空间 。
三、Pod 管理
1. 基础操作
- 查看所有 Podkubectl get pods -A -o wide # 跨命名空间显示 Pod 及所在节点信息
- 查看指定命名空间的 Podkubectl get pods -n <namespace> # 例如 `kubectl get pods -n kube-system`
- 查看 Pod 详情与事件kubectl describe pod <pod-name> # 包含容器状态、事件日志等
2. 交互与日志
- 进入容器终端kubectl exec -it <pod-name> -- /bin/bash # 若镜像精简,使用 `/bin/sh`
- 查看容器日志kubectl logs <pod-name> # 实时日志追加 `-f` 参数
3. 删除与重建
- 强制删除 Podkubectl delete pod <pod-name> --force --grace-period=0 # 立即终止
四、工作负载管理(Deployment/Service)
1. Deployment 操作
- 创建 Deploymentkubectl create deployment nginx --image=nginx --replicas=3 # 指定镜像与副本数
- 扩缩容kubectl scale deployment nginx --replicas=5 # 动态调整副本数
- 回滚版本kubectl rollout undo deployment nginx # 回退到上一版本
2. Service 管理
- 查看 Service 列表kubectl get svc -A # 显示所有服务的 ClusterIP 和端口
- 端口转发测试kubectl port-forward <pod-name> 8080:80 # 本地访问 `localhost:8080` 映射到容器端口
五、配置与存储管理
1. ConfigMap 与 Secret
- 创建 ConfigMapkubectl create configmap app-config --from-file=config.properties # 从文件生成
- 查看 Secret 内容kubectl get secret <secret-name> -o jsonpath='{.data}' # 解码后查看明文
2. 持久化存储
- 查看 PVC/PV 状态kubectl get pvc # 查看 PersistentVolumeClaim kubectl get pv # 查看 PersistentVolume
六、调试与排错
1. 事件与资源状态
- 查看集群事件kubectl get events --sort-by='.metadata.creationTimestamp' # 按时间排序
- 检查资源配额kubectl describe quota # 显示命名空间资源限制
2. 网络测试
- Pod 内网络连通性测试kubectl exec <pod-name> -- curl http://<service-name> # 测试服务可达性
七、高级命令与技巧
1. 资源导出与恢复
- 导出资源配置kubectl get deployment/nginx -o yaml > nginx-backup.yaml # 备份 YAML 文件
- 批量删除资源kubectl delete all --all -n <namespace> # 清空命名空间内所有资源
2. 资源缩写与格式化
- 使用资源缩写kubectl get po,svc,deploy # 等价于 `pods`, `services`, `deployments`
- JSON/自定义输出kubectl get pods -o json # 输出为 JSON 格式 kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase # 自定义列
八、附录:常用资源类型缩写表
| 资源类型 | 缩写 | 示例命令 | 
|---|---|---|
| pods | po | kubectl get po | 
| services | svc | kubectl get svc | 
| deployments | deploy | kubectl get deploy | 
| namespaces | ns | kubectl get ns | 
| persistentvolumeclaims | pvc | kubectl get pvc | 
| 完整列表参考 | 
以上命令覆盖了 Kubernetes 日常运维的 80% 场景,建议结合 kubectl explain <resource> 查看字段说明 。如需更完整命令或最新特性,请参考 Kubernetes 官方文档或上述来源。
