Kubernetes (k8s) 常用指令速查表

以下是一份 Kubernetes (k8s) 常用指令速查表,涵盖集群管理、资源操作、故障排查等场景,适合日常运维和开发使用:


1. 集群与节点管理

命令 说明
kubectl cluster-info 查看集群基本信息
kubectl get nodes 查看所有节点状态
kubectl describe node <node-name> 查看节点详细信息(资源、事件等)
kubectl cordon <node-name> 标记节点为不可调度(维护用)
kubectl uncordon <node-name> 恢复节点为可调度
kubectl drain <node-name> --ignore-daemonsets 排空节点(驱逐Pod)

2. 命名空间 (Namespace)

命令 说明
kubectl get ns 查看所有命名空间
kubectl create ns <namespace> 创建命名空间
kubectl config set-context --current --namespace=<ns> 切换当前操作的命名空间

3. Pod 操作

命令 说明
kubectl get pods [-n <namespace>] 查看所有 Pod(默认当前命名空间)
kubectl describe pod <pod-name> 查看 Pod 详细信息(事件、状态等)
kubectl logs <pod-name> [-c <container>] 查看 Pod 日志(指定容器)
kubectl exec -it <pod-name> -- /bin/sh 进入 Pod 的 Shell
kubectl delete pod <pod-name> 删除 Pod

4. Deployment 管理

命令 说明
kubectl get deploy 查看所有 Deployment
kubectl scale deploy <deploy-name> --replicas=3 扩缩容 Pod 副本数
kubectl rollout status deploy/<deploy-name> 查看 Deployment 发布状态
kubectl rollout undo deploy/<deploy-name> 回滚到上一个版本
kubectl edit deploy <deploy-name> 直接编辑 Deployment 配置

5. Service 与 Ingress

命令 说明
kubectl get svc 查看所有 Service
kubectl get ingress 查看所有 Ingress
kubectl expose deploy <deploy-name> --port=80 --target-port=8080 创建 Service 暴露 Deployment

6. 配置与存储

命令 说明
kubectl get configmap 查看所有 ConfigMap
kubectl get secret 查看所有 Secret
kubectl create secret generic <name> --from-file=key=path 创建 Secret
kubectl get pv 查看持久卷(PersistentVolume)
kubectl get pvc 查看持久卷声明(PersistentVolumeClaim)

7. 调试与故障排查

命令 说明
kubectl get events --sort-by=.metadata.creationTimestamp 按时间排序查看事件
kubectl top pod/node 查看 Pod/节点的资源使用(需 metrics-server)
kubectl api-resources 查看所有支持的资源类型
kubectl explain <resource> 查看资源定义(如 kubectl explain pod.spec

8. 快捷技巧

  • 别名简化

    bash

    复制

    复制代码
    alias k=kubectl
    alias kgp="kubectl get pods"
  • 字段过滤

    bash

    复制

    复制代码
    kubectl get pods -o wide                  # 显示更宽字段(如IP、节点)
    kubectl get pods --field-selector status.phase=Running  # 过滤运行中的 Pod
  • 格式化输出

    bash

    复制

    复制代码
    kubectl get pods -o jsonpath='{.items[*].metadata.name}'  # 仅输出 Pod 名称
    kubectl get pods -o yaml > pod.yaml       # 导出 YAML 配置

常用资源类型缩写

缩写 全称
po pods
deploy deployment
svc service
ing ingress
cm configmap
ns namespace

注意

  • 所有命令默认使用当前上下文(Context)和命名空间(Namespace),可通过 kubectl config 管理上下文;

  • 复杂操作建议结合 YAML 文件(如 kubectl apply -f deploy.yaml)。

相关推荐
零二年的冬4 分钟前
epoll详解
java·linux·开发语言·c++·链表
weixin_449310847 分钟前
电商对账革命:破解效率困局,拥抱自动化转型
运维·自动化
Agent产品评测局9 分钟前
企业工单处理自动化落地,派单回访全流程闭环实现:2026架构升级与多方案全景盘点
运维·人工智能·ai·架构·自动化
问简16 分钟前
ubuntu 输入法优化
linux·运维·ubuntu
勤自省17 分钟前
Windows 文件无法粘贴到 Linux(Ubuntu)系统的解决方案
linux·windows·ubuntu
Bert.Cai34 分钟前
Linux tail命令详解
linux·运维
舒一笑1 小时前
AI 系统落地难的,从来不只是模型:一次企业级部署实施复盘
运维·后端·程序员
sbjdhjd1 小时前
Docker | 核心概念科普 + 保姆级部署
linux·运维·服务器·docker·云原生·面试·eureka
charlie1145141911 小时前
嵌入式C++教程实战之Linux下的单片机编程(9):HAL时钟使能 —— 不开时钟,外设就是一坨睡死的硅
linux·开发语言·c++·单片机·嵌入式硬件·c
Agent产品评测局1 小时前
企业生产报工自动化落地,数据采集全流程实现方案 —— 2026制造业数字化转型深度选型指南
运维·人工智能·ai·chatgpt·自动化