K8s / K3s 通用 Kubectl 命令大全(表格版)

文章目录

  • [K8s / K3s 通用 Kubectl 命令大全(表格版)](#K8s / K3s 通用 Kubectl 命令大全(表格版))
    • 一、核心查询命令(最常用)
    • [二、部署 & 生效命令](#二、部署 & 生效命令)
    • [三、Pod 排查 & 调试命令](#三、Pod 排查 & 调试命令)
    • [四、资源删除 & 清理](#四、资源删除 & 清理)
    • [五、副本 & 扩容管理](#五、副本 & 扩容管理)
    • [六、镜像 & 私有仓库(适配你Nexus)](#六、镜像 & 私有仓库(适配你Nexus))
    • 七、命名空间操作
  • [八、适配你当前 K3s 环境使用格式](#八、适配你当前 K3s 环境使用格式)
  • 九、关键总结
  • [十、 K8s 核心概念全梳理](#十、 K8s 核心概念全梳理)
    • [基础设施层:Node 节点](#基础设施层:Node 节点)
      • [1. Node(集群节点)](#1. Node(集群节点))
    • 最小调度单元:Pod
      • [2. Pod(最小资源单元)](#2. Pod(最小资源单元))
    • 资源隔离与分组:Namespace
      • [3. Namespace(命名空间)](#3. Namespace(命名空间))
    • [Pod 生命周期管理(核心控制器)](#Pod 生命周期管理(核心控制器))
      • [4. Deployment(无状态应用控制器)](#4. Deployment(无状态应用控制器))
      • [5. ReplicaSet / ReplicationController](#5. ReplicaSet / ReplicationController)
      • [6. StatefulSet(有状态应用控制器)](#6. StatefulSet(有状态应用控制器))
      • [7. DaemonSet](#7. DaemonSet)
      • [8. Job / CronJob](#8. Job / CronJob)
    • 网络核心资源
      • [9. Service(服务抽象)](#9. Service(服务抽象))
      • [10. Ingress / IngressController](#10. Ingress / IngressController)
      • [11. NetworkPolicy](#11. NetworkPolicy)
    • 存储资源
      • [12. Volume(存储卷)](#12. Volume(存储卷))
      • [13. PV / PVC](#13. PV / PVC)
      • [14. ConfigMap / Secret](#14. ConfigMap / Secret)
    • 控制平面核心组件(Master)
    • 资源配额与调度
      • [15. ResourceQuota / LimitRange](#15. ResourceQuota / LimitRange)
      • [16. Taint(污点)& Toleration(容忍)](#16. Taint(污点)& Toleration(容忍))
      • [17. Label & Selector](#17. Label & Selector)
    • 权限与安全
      • [18. RBAC 权限体系](#18. RBAC 权限体系)
  • 核心层级关系总结(极简记忆)

K8s / K3s 通用 Kubectl 命令大全(表格版)

重点:K3s 完全兼容标准 K8s 所有 kubectl 命令 ,语法、参数、写法一模一样

你现在环境:docker exec -it k3s-server kubectl xxx

原生 K8s 环境:直接 kubectl xxx

kubectl = K8s 的「命令行遥控器」

kubectl 就是这个遥控器!

你通过 kubectl 发命令:

  • 查看集群状态

  • 部署项目

  • 查看运行中的服务

  • 删除项目

  • 查看日志

  • K8s = 电视机

  • kubectl = 遥控器

  • get nodes = 按「电源键/菜单键」

你不可能直接用手摸电视机核心,必须用遥控器。

操作 K8s 必须用 kubectl!

kubectl 就是操作 K8s 的命令行工具
没有它,你就无法控制 K8s 集群!

一、核心查询命令(最常用)

命令 作用 场景说明
kubectl get nodes 查看集群所有节点 看集群机器是否就绪、状态 Ready
kubectl get pods 查看当前命名空间所有容器(Pod) 看项目是否启动、Running/异常
kubectl get pods -A 查看全命名空间所有Pod 排查系统组件、全部服务
kubectl get svc 查看所有Service服务 看端口映射、NodePort、ClusterIP
kubectl get deploy 查看所有Deployment部署 查看业务应用副本数、运行状态
kubectl get ns 查看所有命名空间 k8s资源隔离:kube-system/默认default
kubectl get all 查看当前空间所有资源 快速一览:Pod/Service/Deployment

二、部署 & 生效命令

命令 作用
kubectl apply -f xxx.yaml 通过yaml创建/更新资源(日常首选
kubectl create -f xxx.yaml 纯新建资源,不能更新
kubectl delete -f xxx.yaml 根据yaml删除整套资源
kubectl delete pod pod名称 强制删除单个Pod,自动重建

三、Pod 排查 & 调试命令

命令 作用
kubectl logs pod名称 查看容器日志(排错核心)
kubectl logs -f pod名称 实时滚动查看日志
kubectl exec -it pod名称 -- /bin/bash 进入容器内部终端
kubectl describe pod pod名称 查看Pod详细报错、启动失败原因

四、资源删除 & 清理

命令 作用
kubectl delete deploy 应用名 删除整个部署(所有Pod一起删)
kubectl delete svc 服务名 删除Service端口暴露规则
kubectl delete ns 命名空间名 删除整个命名空间(清空所有资源)

五、副本 & 扩容管理

命令 作用
kubectl scale deploy 应用名 --replicas=3 手动扩容/缩容副本数量
kubectl rollout restart deploy 应用名 滚动重启项目(不停机更新)
kubectl rollout status deploy 应用名 查看滚动更新进度

六、镜像 & 私有仓库(适配你Nexus)

命令 作用
kubectl set image deploy 应用名 容器名=镜像地址 快速替换镜像版本,无需改yaml

你的场景示例:

直接切换Nexus新镜像,不用改文件

kubectl set image deploy spring-demo spring-demo=host.docker.internal:8081/docker-hosted/spring-demo:15

七、命名空间操作

命令 作用
kubectl get ns 列出所有命名空间
kubectl create ns test 新建命名空间
kubectl get pods -n kube-system 指定命名空间查询资源

八、适配你当前 K3s 环境使用格式

你现在不能直接敲 kubectl,要加容器前缀:

bash 复制代码
# 格式固定
docker exec -it k3s-server kubectl 上面所有命令

# 举例
docker exec -it k3s-server kubectl get pods
docker exec -it k3s-server kubectl apply -f /springboot-deploy.yaml

九、关键总结

  1. K3s = 轻量K8s ,kubectl 命令完全通用,企业K8s直接照搬;
  2. 日常90%场景:get / apply / logs / describe / delete 足够;
  3. 你后续CI/CD自动部署,Jenkins就是调用这些kubectl命令,实现一键发布。

十、 K8s 核心概念全梳理

基础设施层:Node 节点

1. Node(集群节点)

  • 定义 :K8s 集群中的物理机/虚拟机/云服务器,是集群硬件载体。
  • 分类
    1. Master 节点:控制平面,管理集群;
    2. Worker 节点:工作负载节点,真正运行 Pod。
  • 核心组件(每个Node必装)
    1. kubelet:节点代理,接收 Master 指令,管理本机 Pod 生命周期;
    2. kube-proxy:节点网络代理,负责 Service 转发、负载均衡;
    3. 容器运行时containerd/docker,负责容器启停。
  • 状态:Ready/NotReady/DiskPressure/MemoryPressure
  • 核心作用:提供计算、存储、网络资源,承载所有业务容器。

最小调度单元:Pod

2. Pod(最小资源单元)

  • 定义 :K8s 最小创建、调度、管理单元不是容器,一个 Pod 封装 1~N 个容器。
  • 核心特性
    1. 同一Pod内所有容器共享网络栈(IP、端口、网卡);
    2. 共享存储卷(Volume);
    3. 容器生命周期绑定,同启同停、同节点调度;
    4. 只有短暂生命周期,不直接单独部署生产。
  • Pod内容器类型
    • 业务容器:主业务(Nginx、Java 应用);
    • 辅助容器:日志收集、监控、数据同步(sidecar 模式)。
  • Pod 生命周期
    Pending → Running → Succeeded/Failed → CrashLoopBackOff/ImagePullBackOff(异常)
  • 关键限制:不建议单Pod多端口冲突、不跨节点拆分Pod。

资源隔离与分组:Namespace

3. Namespace(命名空间)

  • 定义 :集群内逻辑资源隔离单元,用于资源分组、权限隔离、配额限制。
  • 默认内置命名空间
    1. default:默认所有资源无指定NS时归属;
    2. kube-system:K8s 系统核心组件(kube-apiserver、coredns等);
    3. kube-public:公共可读资源;
    4. kube-node-lease:节点心跳租约。
  • 核心用途
    1. 多环境隔离:dev/test/prod 分不同NS;
    2. 多租户隔离:不同团队独立NS;
    3. 资源配额、限制单独配置。
  • 注意
    • NS 仅逻辑隔离,无网络强隔离(需网络策略配合);
    • 集群级资源(Node、PV、CRD)不属于任何NS

Pod 生命周期管理(核心控制器)

Pod 本身不稳定,生产绝不直接裸写Pod,依靠控制器管理。

4. Deployment(无状态应用控制器)

  • 最常用,管理无状态服务(Nginx、微服务、Web应用)。
  • 能力:弹性伸缩、滚动更新、回滚、副本数维持。
  • 关系:Deployment → ReplicaSet → Pod

5. ReplicaSet / ReplicationController

  • ReplicaSet:维持指定数量Pod副本,确保集群始终有N个正常Pod;
  • RC:旧版,已被 RS 替代。

6. StatefulSet(有状态应用控制器)

  • 管理有状态服务:MySQL、Redis、MQ、Zookeeper。
  • 特性:固定主机名、固定网络标识、有序启停、持久化存储独立绑定。

7. DaemonSet

  • 集群每个Node/指定Node 运行且仅运行1个Pod;
  • 场景:日志收集(Filebeat)、节点监控、网络插件。

8. Job / CronJob

  • Job:一次性任务,执行完成即销毁;
  • CronJob:定时任务,基于 cron 表达式周期执行。

网络核心资源

9. Service(服务抽象)

  • 问题:Pod IP 动态变化、随时重建,无法固定访问;
  • 作用 :为一组Pod提供固定访问入口+负载均衡
  • 三种类型
    1. ClusterIP(默认):集群内部访问;
    2. NodePort:宿主机端口暴露,外网可通过节点IP:端口访问;
    3. LoadBalancer:云厂商负载均衡,公网访问。

10. Ingress / IngressController

  • Service 仅四层转发,Ingress 实现七层HTTP/HTTPS 路由
  • 功能:域名路由、SSL证书、限流、路径转发;
  • 依赖 Ingress Controller(Nginx-ingress、Traefik)。

11. NetworkPolicy

  • 命名空间内/跨NS 网络访问策略,实现Pod之间防火墙规则,做网络隔离。

存储资源

12. Volume(存储卷)

  • 解决容器数据临时问题,给Pod挂载存储;
  • 类型:emptyDir、hostPath、ConfigMap挂载、PVC等。

13. PV / PVC

  • PV:集群级持久化存储资源(管理员创建);
  • PVC:用户存储申请,绑定PV,供Pod挂载使用;
  • 解耦存储申请与存储实现。

14. ConfigMap / Secret

  • ConfigMap:存放非敏感配置(配置文件、环境变量);
  • Secret:存放敏感数据(密码、密钥、证书),Base64加密存储。

控制平面核心组件(Master)

  1. kube-apiserver:集群入口,所有操作API网关,鉴权、校验;
  2. etcd:集群唯一数据库,存储所有K8s资源数据;
  3. kube-controller-manager:各类控制器总调度;
  4. kube-scheduler:调度器,为新Pod选择合适Node节点。

资源配额与调度

15. ResourceQuota / LimitRange

  • ResourceQuota:命名空间级别,限制总CPU/内存/Pod数量;
  • LimitRange:限制单个Pod/容器资源上下限。

16. Taint(污点)& Toleration(容忍)

  • 污点:打在Node上,排斥Pod;
  • 容忍:打在Pod上,允许调度到带污点节点;
  • 场景:Master节点禁止业务Pod部署、专属节点隔离。

17. Label & Selector

  • Label:自定义标签,给Pod/Node/Service打标记;
  • Selector:标签选择器,控制器、Service通过标签匹配管理Pod。

权限与安全

18. RBAC 权限体系

  • User:用户;
  • Role/ClusterRole:权限规则(命名空间级/集群级);
  • RoleBinding/ClusterRoleBinding:权限绑定,给用户/账号授权。

核心层级关系总结(极简记忆)

  1. 底层:Node 机器
  2. 运行载体:Pod(容器集合)
  3. 生命周期管理:Deployment/StatefulSet/DaemonSet 控制器
  4. 访问入口:Service + Ingress
  5. 逻辑隔离:Namespace
  6. 配置&存储:ConfigMap/Secret、PV/PVC
  7. 管控核心:Master组件 + RBAC权限
相关推荐
阿旭超级学得完2 小时前
Linux基础指令 四(apt,vim,git,cgdb)
linux·服务器·开发语言·数据结构·c++·git·vim
虎妞05002 小时前
云原生 AI 推理部署:Kubernetes 实战指南
云原生·kubernetes·容器化·kubeflow·ai部署
半夜修仙2 小时前
4.RabbitMQ运维
linux·运维·服务器·分布式·rabbitmq·java-rabbitmq
java_cj2 小时前
10分钟部署K8s集群:kubeadm极简安装指南
云原生·容器·架构·kubernetes
ALINX技术博客2 小时前
【黑金云课堂】FPGA技术教程Linux开发:摄像头GPU渲染显示/Qt OpenGLES使用
linux·qt·fpga开发·gpu
无足鸟ICT2 小时前
【RHCA+】移动光标快捷键
linux·编辑器·vim
云游牧者2 小时前
LXC 容器常用命令与核心配置参数详解
docker·容器化·linux运维·lxc·linux容器
牛奶咖啡132 小时前
CI/CD——通过Jenkins插件实现与K8s集成并部署应用到k8s集群的实践保姆级教程
ci/cd·kubernetes·jenkins·jenkins安装k8s插件·jenkins对k8s配置凭据·jenkins配置pod模板·编写流水线脚本部署应用到k8s
AI服务老曹2 小时前
统一接入百家私有协议:基于 Docker 容器化的 GB28181/RTSP 边缘计算视频中台架构解析(附全源码交付)
人工智能·docker·边缘计算