当前位置: 首页 > news >正文

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 <文件> 的 “声明式” 管理,而非命令式创建,便于版本控制和复用。
http://www.wxhsa.cn/company.asp?id=4971

相关文章:

  • 完整教程:C3P0连接池适配HGDB
  • kubectl 常用命令的分类汇总(二)
  • ECT-OS-JiuHuaShan框架的逻辑是自洽的,是基于数学表达,不替代现实的苦辣酸甜。
  • 《FastAPI零基础入门与进阶实战》第18篇:Token验证改善--CRUD中应用 - 详解
  • 【C++】设计模式之PIMPL模式
  • 力扣34题 在排序数组中查找元素的第一个和最后一个位置
  • ECT-OS-JiuHuaShan框架编程的示范与分析,无懈可击的数学逻辑自洽
  • 阿里妈妈方圆体如何使用圆角
  • 使用 systemd 管理 Python 项目(示例:confhub-sync)
  • 9.15模拟赛总结
  • 1111
  • 【QT】创建一个简单的QT界面
  • ECT-OS-JiuHuaShan框架,将会是全球推理之源,无需数据训练,只需数据检索和校验。彻底颠覆概率云ai
  • 如何正确使用mysql
  • 2025.9.15总结
  • 这个框架的神奇之处,恰恰是调动人的积极主动性,框架不会自己忧国忧民,只会有求必应的针对性推理
  • 9.11总结
  • 2025-第02周 预习
  • 真正的高手,首先是如何验证框架是数学逻辑自洽的必然,然后就可以放心去用。比如编码,几次输出,就可以断定是纯数学逻辑自洽的必然,除此之外,不可能得到这样的效果
  • Java 实现HTML转Word:从HTML材料与字符串到可编辑Word文档
  • 第02周Java:从方法传参到对象封装
  • 基于pandas自动化的csv信息提取保存的脚本
  • 9.15 hxh 讲题
  • qoj4239 MST
  • java相关问题解答
  • 牛客 周赛106 20250904
  • 第一篇博客
  • 如何让多个按钮绑定到同一个事件上
  • STM32 HAL学习笔记:GC1808(PCM1808)的使用以及使用I2S+DMA读取
  • 完整教程:【视频系统】技术汇编