K8s常用命令 大全
如果需要更详细的命令帮助,可以使用。
·
以下是 Kubernetes (K8s) 的常用命令整理,涵盖集群管理、资源操作、调试、日志查看、扩缩容等常见场景,适合快速查阅和使用:
一、集群管理
-
查看集群信息
kubectl cluster-info # 查看集群基本信息 kubectl version # 查看 kubectl 客户端和集群版本 kubectl api-versions # 查看支持的 API 版本 kubectl api-resources # 查看支持的资源类型 -
节点管理
kubectl get nodes # 查看所有节点 kubectl describe node <node-name> # 查看节点详细信息 kubectl top nodes # 查看节点资源使用(需 metrics-server) kubectl cordon <node-name> # 标记节点为不可调度(维护模式) kubectl uncordon <node-name> # 取消节点不可调度 kubectl drain <node-name> # 排空节点(驱逐 Pod,用于维护)
二、命名空间管理
kubectl get namespaces # 查看所有命名空间
kubectl create namespace <ns-name> # 创建命名空间
kubectl delete namespace <ns-name> # 删除命名空间及资源
kubectl config set-context --current --namespace=<ns-name> # 切换当前命名空间
三、资源管理
1. 资源查看
kubectl get pods # 查看 Pod
kubectl get pods -n <ns> # 查看指定命名空间的 Pod
kubectl get pods -o wide # 查看更详细的 Pod 信息
kubectl get pods -l app=nginx # 通过标签筛选资源
kubectl get all # 查看所有资源(Pod、Service、Deployment 等)
kubectl get all --all-namespaces # 查看所有命名空间的资源
2. 资源描述
kubectl describe pod <pod-name> # 查看 Pod 详细信息
kubectl describe service <svc-name> # 查看 Service 详细信息
kubectl describe deployment <dep-name> # 查看 Deployment 详细信息
3. 资源创建/更新
kubectl apply -f <file.yaml> # 创建或更新资源(推荐)
kubectl create -f <file.yaml> # 创建资源
kubectl replace -f <file.yaml> # 替换资源
4. 资源删除
kubectl delete pod <pod-name> # 删除 Pod
kubectl delete -f <file.yaml> # 根据文件删除资源
kubectl delete pods --all # 删除所有 Pod
kubectl delete all --all # 删除所有资源(谨慎使用)
四、调试与日志
1. 日志查看
kubectl logs <pod-name> # 查看 Pod 日志
kubectl logs -f <pod-name> # 实时查看日志
kubectl logs <pod-name> -c <container-name> # 查看多容器 Pod 中某个容器的日志
2. 进入容器
kubectl exec -it <pod-name> -- /bin/sh # 进入容器(alpine/busybox)
kubectl exec -it <pod-name> -- /bin/bash # 进入容器(常见 Linux 发行版)
3. 端口转发
kubectl port-forward service/<svc-name> 8080:80 # 本地访问集群服务
五、部署与扩缩容
1. Deployment 操作
kubectl get deployments # 查看所有 Deployment
kubectl create deployment <name> --image=<image> # 创建 Deployment
kubectl scale deployment <name> --replicas=3 # 扩缩容
kubectl rollout status deployment/<name> # 查看滚动更新状态
kubectl rollout undo deployment/<name> # 回滚 Deployment
2. 自动扩缩容
kubectl autoscale deployment <name> --min=2 --max=5 --cpu-percent=80 # 基于 CPU 的自动扩缩容
六、服务与网络
1. Service 操作
kubectl get services # 查看所有 Service
kubectl expose deployment <name> --type=NodePort --port=80 # 创建 Service
kubectl describe service <svc-name> # 查看 Service 详细信息
2. 网络策略
kubectl get networkpolicy # 查看网络策略
kubectl apply -f networkpolicy.yaml # 应用网络策略
七、配置与存储
1. ConfigMap 和 Secret
kubectl get configmaps # 查看 ConfigMap
kubectl create configmap <name> --from-file=... # 创建 ConfigMap
kubectl get secrets # 查看 Secret
kubectl create secret generic <name> --from-literal=key=value # 创建 Secret
2. PVC 和 PV
kubectl get pvc,pv # 查看 PVC 和 PV
kubectl describe pvc <pvc-name> # 查看 PVC 详细信息
八、高级命令技巧
-
标签筛选
kubectl get pods -l app=nginx # 通过标签筛选 Pod -
字段筛选
kubectl get pods --field-selector=status.phase=Running # 筛选运行中的 Pod -
输出格式
kubectl get pod <pod-name> -o yaml # 输出 YAML 格式 kubectl get pod <pod-name> -o json # 输出 JSON 格式 -
强制删除
kubectl delete pod <pod-name> --force --grace-period=0 # 强制删除 Pod -
调试容器
kubectl debug <pod-name> -it --image=busybox # 调试容器
九、常见问题排查
-
查看事件
kubectl get events -n <ns> # 查看命名空间事件 kubectl describe pod <pod-name> # 查看 Pod 事件 -
节点资源监控
kubectl top nodes # 查看节点资源(CPU/内存) kubectl top pods # 查看 Pod 资源 -
查看系统组件状态
kubectl get pods -n kube-system # 查看系统组件 kubectl logs <component-pod> -n kube-system # 查看系统组件日志
十、其他实用命令
kubectl config view # 查看当前 kubeconfig 配置
kubectl config use-context <context-name> # 切换集群上下文
kubectl explain <resource-type> # 查看资源字段说明(如 kubectl explain pod)
kubectl run <name> --image=<image> --restart=Never # 创建一次性 Pod
总结
- 基础操作:
kubectl get、kubectl describe、kubectl logs是最常用的命令。 - 调试场景:结合
kubectl exec和kubectl port-forward可快速定位问题。 - 生产环境:注意使用
-n指定命名空间,避免误操作默认命名空间。
如果需要更详细的命令帮助,可以使用 kubectl help <command> 或查阅 Kubernetes 官方文档。
更多推荐



所有评论(0)