kubectl、kubelet、kubeadm命令详解

K8s核心命令详解(kubectl、kubelet、kubeadm)------ 新手必看

在GitLab CI/CD + K3s实践过程中,常会接触到kubectlkubeletkubeadm,三者分工明确、缺一不可,以下从作用、应用场景、核心区别三方面详细拆解,结合CI/CD实践场景说明,帮助快速理解并落地使用。

先澄清:常见拼写误区

日常实践中,新手易将核心命令拼错,明确以下3个核心组件:

  • kubectl:K8s/K3s 命令行客户端(最常用,用于操作集群)

  • kubelet:K8s/K3s 节点上的核心代理组件(运行在每个节点,负责容器管理)

  • kubeadm:K8s 集群初始化/管理工具(用于部署、升级集群,K3s中可简化使用)

一、三大核心组件(命令)详细解析

1. kubectl ------ 集群"操作终端"(你最常用的命令)

核心定位:Kubernetes/K3s 的命令行客户端工具,是开发者/运维人员与K8s集群交互的"桥梁",相当于"集群遥控器",所有集群操作(创建、删除、查看资源)均通过它执行。

核心作用:向K8s集群的API Server发送指令,管理集群内所有资源(Pod、命名空间、部署、服务等),无需直接操作集群节点或容器。

应用场景(贴合CI/CD实践)

  • CI/CD流水线中,部署应用:kubectl apply \-f 部署配置文件\.yaml

  • 查看Pod状态(排查部署问题):kubectl get pods \-n 命名空间

  • 查看Pod日志(排查应用报错):kubectl logs \-n 命名空间 Pod名称

  • 删除异常资源:kubectl delete pods \-n 命名空间 \-\-all

关键特点:客户端工具,可安装在集群节点,也可安装在本地(配置kubeconfig后远程连接集群);仅负责"发送指令",不负责"执行指令"。

2. kubelet ------ 节点"管家"(集群底层核心组件)

核心定位 :运行在K8s/K3s集群的每一个节点(主节点+从节点)上的守护进程(后台服务),是节点与集群控制平面(API Server)通信的核心,相当于"节点的管家"。

核心作用:监听API Server下发的指令(如"启动一个Pod""停止一个容器"),执行具体操作,确保节点上的容器按照预期运行;同时向API Server汇报节点和容器的状态。

应用场景(无需手动频繁操作,却至关重要)

  • 自动启动Pod:当你用kubectl下发"部署应用"指令后,kubelet会接收指令,拉取镜像、启动容器,确保Pod正常运行。

  • 监控容器状态:若容器崩溃,kubelet会根据配置(如重启策略)自动重启容器,保障应用可用性。

  • 汇报节点状态:向API Server上报节点的资源使用情况(CPU、内存)、健康状态,若节点故障,集群会及时感知。

关键特点:底层组件,默认随K3s/K8s一起安装,后台自动运行,新手无需手动操作;若kubelet故障,该节点会被集群标记为"不可用",无法部署新Pod。

3. kubeadm ------ 集群"搭建工具"(集群初始化专用)

核心定位:Kubernetes官方提供的集群初始化和管理工具,用于快速搭建、升级、重置K8s集群,简化集群部署流程(K3s中已集成类似功能,可简化使用)。

核心作用:自动生成集群所需的证书、配置文件,初始化集群控制平面(API Server、etcd等),添加节点到集群,升级集群版本等。

应用场景(集群部署/维护阶段使用)

  • 初始化K8s集群(主节点):kubeadm init(K3s中用k3s server替代,更简洁)

  • 将从节点加入集群:kubeadm join(K3s中可通过复制token快速加入)

  • 升级K8s集群版本:kubeadm upgrade

  • 重置集群(彻底清理集群配置):kubeadm reset(类似你之前清理K3s配置的操作)

关键特点:集群部署专用工具,仅在搭建、升级、重置集群时使用;不参与日常的Pod管理、容器运行,与你的CI/CD日常操作关联度较低,但集群搭建离不开它。

二、三大组件核心区别(表格对比,一目了然)

组件(命令) 核心定位 核心作用 应用场景 是否手动频繁操作
kubectl 集群命令行客户端(遥控器) 向API Server发送指令,管理集群资源 CI/CD部署、日常排查、资源管理 是(高频使用,如查看Pod、部署应用)
kubelet 节点守护进程(管家) 执行指令、管理容器、汇报节点状态 后台运行,保障容器正常运行 否(仅故障时需排查,无需日常操作)
kubeadm 集群部署/管理工具(搭建器) 初始化、升级、重置集群 集群搭建、版本升级、集群重置 否(仅集群维护时使用)

三、新手避坑&实践总结(贴合CI/CD场景)

    1. 日常CI/CD操作,重点掌握kubectlkubectl deletekubectl describe等命令,都是kubectl的核心用法,后续部署应用、排查问题,它是核心工具。
    1. kubelet无需手动操作,但要知道它的作用:若出现"Pod一直处于Pending状态""容器无法启动",可排查kubelet状态(systemctl status kubelet),大概率是kubelet故障导致。
    1. K3s中可简化kubeadm的使用:K3s是轻量级K8s,已集成集群初始化功能,无需用kubeadm init,直接用k3s server即可启动主节点,更适合新手。
    1. 三者关系总结:用kubeadm(或K3s自带命令)搭建集群 → kubelet在每个节点后台运行,负责执行指令 → 用kubectl发送指令,管理集群,完成CI/CD部署。

四、高频实用命令汇总

bash 复制代码
# 1. kubectl(日常高频)
kubectl get pods -n 命名空间        # 查看命名空间下所有Pod状态
kubectl describe pod Pod名称 -n 命名空间  # 查看Pod详细信息(排查故障)
kubectl logs Pod名称 -n 命名空间 --tail=50  # 查看Pod最近50行日志
kubectl apply -f 部署文件.yaml      # 部署应用(CI/CD流水线常用)
kubectl delete pod Pod名称 -n 命名空间  # 删除指定Pod

# 2. kubelet(排查故障用)
systemctl status kubelet           # 查看kubelet运行状态
systemctl restart kubelet          # 重启kubelet(故障时尝试)

# 3. kubeadm(集群维护用,K3s可简化)
kubeadm init                       # 初始化K8s主节点
kubeadm join 主节点IP:端口 --token 令牌  # 加入从节点
kubeadm reset                      # 重置K8s集群
相关推荐
janeysj2 小时前
docker-proxy实现原理
运维·docker·容器
小夏子_riotous2 小时前
Docker学习路径——5、容器数据卷
linux·运维·服务器·学习·docker·容器·云计算
wydd99_lll13 小时前
docker特权模式下逃逸
运维·docker·容器
mseaspring14 小时前
一款用于监控跨多台主机 Docker 容器的实时终端
运维·docker·容器
heimeiyingwang15 小时前
【架构实战】Kubernetes日志收集:EFK/Loki架构
容器·架构·kubernetes
SPC的存折18 小时前
6、Docker常用配置
运维·docker·容器
图图玩ai19 小时前
SSH 命令管理工具怎么选?从命令收藏到批量执行一次讲清
linux·nginx·docker·ai·程序员·ssh·可视化·gmssh·批量命令执行
QC·Rex19 小时前
Kubernetes 生产环境调试安全最佳实践:2026 年完整指南
安全·贪心算法·kubernetes
SPC的存折20 小时前
4、Docker私有仓库
运维·docker·容器