kubectl 常用命令的分类汇总(一)

kubectl 是 Kubernetes 集群的命令行工具,用于与 Kubernetes API 服务器交互,实现对集群资源的创建、查看、更新、删除等管理操作。其核心用途包括:部署应用程序、查看和管理集群资源、检查集群状态、调试问题、配置集群参数等。

以下是 kubectl 常用命令的分类汇总:

一、集群信息查看

用于了解集群整体状态、节点信息等基础情况。

  • kubectl get nodes
    查看集群中所有节点的状态(运行中、就绪等)。
    示例:kubectl get nodes -o wide-o wide 显示更多详情,如节点 IP)。
  • kubectl cluster-info
    查看集群的核心组件(如 API Server、etcd、kubelet 等)的地址和状态。
  • kubectl describe node <节点名称>
    查看指定节点的详细信息(如资源分配、运行的 Pod、标签等)。

二、工作负载管理

工作负载是 Kubernetes 中运行的应用实例集合,包括 Pod、Deployment、StatefulSet 等。

1. 查看工作负载

  • kubectl get pods
    查看当前命名空间下的所有 Pod 状态(运行中、 pending、失败等)。
    示例:kubectl get pods -n <命名空间>-n 指定命名空间,默认是 default)。
  • kubectl get deployments
    查看 Deployment 资源(用于管理无状态应用的 Pod)。
  • kubectl get statefulsets
    查看 StatefulSet 资源(用于管理有状态应用的 Pod,如数据库)。
  • kubectl get replicasets
    查看 ReplicaSet 资源(用于确保指定数量的 Pod 副本运行)。

2. 操作工作负载

  • kubectl apply -f <yaml文件路径>
    通过 YAML/JSON 配置文件创建或更新资源(最常用的部署方式,支持 “声明式” 管理)。
    示例:kubectl apply -f deployment.yaml(部署应用)。
  • kubectl create deployment <名称> --image=<镜像名>
    快速创建一个 Deployment(命令式创建,适用于临时测试)。
    示例:kubectl create deployment nginx --image=nginx:1.21
  • kubectl delete pod <pod名称>
    删除指定 Pod(若由 Deployment 管理,会自动重建新 Pod)。
  • kubectl delete deployment <deployment名称>
    删除指定 Deployment(会同时删除其管理的所有 Pod)。
  • kubectl scale deployment <deployment名称> --replicas=<数量>
    调整 Deployment 的 Pod 副本数量(扩缩容)。
    示例:kubectl scale deployment nginx --replicas=3(扩到 3 个副本)。

三、服务与网络

用于管理应用的网络访问(如暴露服务、查看网络规则等)。

  • kubectl get services(缩写 kubectl get svc
    查看集群中的 Service 资源(用于暴露 Pod 供内部 / 外部访问)。
  • kubectl expose deployment <deployment名称> --port=<端口> --type=<类型>
    为 Deployment 创建 Service,暴露端口供访问。
    示例:kubectl expose deployment nginx --port=80 --type=NodePort(NodePort 类型允许外部通过节点端口访问)。
  • kubectl get ingresses(缩写 kubectl get ing
    查看 Ingress 资源(用于管理外部访问集群内服务的规则,如域名路由)。

四、配置与存储

  • kubectl get configmaps(缩写 kubectl get cm
    查看 ConfigMap 资源(用于存储非敏感配置数据,供 Pod 挂载使用)。
  • kubectl get secrets
    查看 Secret 资源(用于存储敏感信息,如密码、证书,会被加密存储)。
  • kubectl get persistentvolumes(缩写 kubectl get pv
    查看集群中的持久卷(PV,集群级别的存储资源)。
  • kubectl get persistentvolumeclaims(缩写 kubectl get pvc
    查看持久卷声明(PVC,Pod 对存储资源的请求,与 PV 绑定使用)。

五、资源详情与调试

  • kubectl describe pod <pod名称>
    查看 Pod 的详细信息(如事件、容器状态、挂载的存储等,常用于排查 Pod 启动失败问题)。
  • kubectl logs <pod名称>(缩写 kubectl logs <pod名>
    查看 Pod 中容器的日志(默认第一个容器)。
    示例:kubectl logs <pod名> -c <容器名>(指定容器);kubectl logs <pod名> -f(实时跟踪日志)。
  • kubectl exec -it <pod名称> -- <命令>
    进入 Pod 的容器内部执行命令(类似 SSH 登录)。
    示例:kubectl exec -it nginx-pod -- /bin/bash(进入 nginx 容器的 bash 终端)。
  • kubectl top pods
    查看 Pod 的资源使用情况(CPU、内存)。
  • kubectl top nodes
    查看节点的资源使用情况。

六、其他常用命令

  • kubectl config view
    查看当前 kubectl 配置(集群地址、认证信息等)。
  • kubectl config use-context <上下文名称>
    切换到指定的集群上下文(适用于管理多个集群)。
  • kubectl rollout history deployment <deployment名称>
    查看 Deployment 的更新历史(用于回滚版本)。
  • kubectl rollout undo deployment <deployment名称>
    回滚 Deployment 到上一个版本(如需指定版本,加 --to-revision=<版本号>)。
  • kubectl explain <资源类型>
    查看资源类型的详细说明(如字段含义)。
    示例:kubectl explain deployment.spec(查看 Deployment 中 spec 字段的说明)。

说明

  • 所有命令后可加 -h 查看帮助(如 kubectl get pods -h)。
  • 命名空间相关操作需加 -n <命名空间>,如 kubectl get pods -n kube-system(查看系统组件的 Pod)。
  • 生产环境中推荐使用 kubectl apply -f <文件> 的 “声明式” 管理,而非命令式创建,便于版本控制和复用。
posted @ 2025-09-15 20:36  郭慕荣  阅读(37)  评论(0)    收藏  举报