文章目录
- [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
九、关键总结
- K3s = 轻量K8s ,kubectl 命令完全通用,企业K8s直接照搬;
- 日常90%场景:
get / apply / logs / describe / delete足够; - 你后续CI/CD自动部署,Jenkins就是调用这些kubectl命令,实现一键发布。
十、 K8s 核心概念全梳理
基础设施层:Node 节点
1. Node(集群节点)
- 定义 :K8s 集群中的物理机/虚拟机/云服务器,是集群硬件载体。
- 分类
- Master 节点:控制平面,管理集群;
- Worker 节点:工作负载节点,真正运行 Pod。
- 核心组件(每个Node必装)
kubelet:节点代理,接收 Master 指令,管理本机 Pod 生命周期;kube-proxy:节点网络代理,负责 Service 转发、负载均衡;- 容器运行时 :
containerd/docker,负责容器启停。
- 状态:Ready/NotReady/DiskPressure/MemoryPressure
- 核心作用:提供计算、存储、网络资源,承载所有业务容器。
最小调度单元:Pod
2. Pod(最小资源单元)
- 定义 :K8s 最小创建、调度、管理单元 ,不是容器,一个 Pod 封装 1~N 个容器。
- 核心特性
- 同一Pod内所有容器共享网络栈(IP、端口、网卡);
- 共享存储卷(Volume);
- 容器生命周期绑定,同启同停、同节点调度;
- 只有短暂生命周期,不直接单独部署生产。
- Pod内容器类型
- 业务容器:主业务(Nginx、Java 应用);
- 辅助容器:日志收集、监控、数据同步(sidecar 模式)。
- Pod 生命周期
Pending → Running → Succeeded/Failed → CrashLoopBackOff/ImagePullBackOff(异常) - 关键限制:不建议单Pod多端口冲突、不跨节点拆分Pod。
资源隔离与分组:Namespace
3. Namespace(命名空间)
- 定义 :集群内逻辑资源隔离单元,用于资源分组、权限隔离、配额限制。
- 默认内置命名空间
default:默认所有资源无指定NS时归属;kube-system:K8s 系统核心组件(kube-apiserver、coredns等);kube-public:公共可读资源;kube-node-lease:节点心跳租约。
- 核心用途
- 多环境隔离:dev/test/prod 分不同NS;
- 多租户隔离:不同团队独立NS;
- 资源配额、限制单独配置。
- 注意 :
- 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提供固定访问入口+负载均衡。
- 三种类型
- ClusterIP(默认):集群内部访问;
- NodePort:宿主机端口暴露,外网可通过节点IP:端口访问;
- 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)
- kube-apiserver:集群入口,所有操作API网关,鉴权、校验;
- etcd:集群唯一数据库,存储所有K8s资源数据;
- kube-controller-manager:各类控制器总调度;
- 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:权限绑定,给用户/账号授权。
核心层级关系总结(极简记忆)
- 底层:Node 机器
- 运行载体:Pod(容器集合)
- 生命周期管理:Deployment/StatefulSet/DaemonSet 控制器
- 访问入口:Service + Ingress
- 逻辑隔离:Namespace
- 配置&存储:ConfigMap/Secret、PV/PVC
- 管控核心:Master组件 + RBAC权限