一句话总结

  • kubelet:节点上的真正干活的人,负责盯着员工(容器)干活(每个节点必须装)
  • kubeadm:集群搭建 / 扩容 / 升级工具/生成证书(只用来装集群,不负责运行)
  • kubectl:集群命令行操作工具(用来发指令

1. kubeadm:集群搭建工具(基建)

kubeadm 是一个命令行工具,它的核心目标是简化 Kubernetes 集群的部署流程。在没有它之前,我们需要手动配置各种证书、启动各种服务,非常繁琐。

  • 核心作用:负责集群的初始化节点加入版本升级
  • 主要功能
    • 初始化 Master 节点:运行 kubeadm init 时,它会自动生成集群所需的证书,启动 API Server、etcd、Controller Manager 等控制平面组件。
    • 添加 Worker 节点:生成令牌(Token),让工作节点可以通过 kubeadm join 命令安全地加入集群。
    • 集群升级:通过 kubeadm upgrade 命令,可以一键将 Kubernetes 集群升级到新版本,自动处理组件依赖。
    • 重置环境:使用 kubeadm reset 可以清理节点配置,让节点恢复到安装前的状态。
  • 注意kubeadm 只负责“搭建”集群,它不包含网络插件(如 Calico、Flannel),网络插件需要你在搭建后手动安装。

2. kubelet:节点管家(执行)

kubelet 是 Kubernetes 架构中的核心节点代理,它运行在集群的每一台机器上(无论是 Master 还是 Worker 节点)。它是连接“指令”与“实际运行容器”的桥梁。

  • 核心作用:确保节点上的容器按照预期正常运行
  • 主要功能
    • 管理 Pod 生命周期:它从 API Server 接收指令(Pod Spec),然后调用底层的容器运行时(如 containerd、Docker)来启动、停止或重启容器。
    • 状态上报:定期向 Master 节点汇报本机的资源使用情况(CPU、内存)和健康状态(Ready/NotReady)。
    • 健康检查:负责执行存活探针(Liveness Probe)和就绪探针(Readiness Probe),如果容器挂了,它会负责重启。
    • 资源监控:确保容器使用的资源不超过限制(Limits),防止某个容器把节点资源耗尽。

3. kubectl:命令行客户端(交互)

kubectl 是你作为管理员与 Kubernetes 集群交互的唯一入口。它是一个客户端工具,通常安装在你自己的笔记本电脑或运维跳板机上。

  • 核心作用:作为客户端,向 Kubernetes API Server 发送 REST 请求。
  • 主要功能
    • 资源管理:你可以通过它创建(create)、应用(apply)、更新(edit/replace)和删除(delete)各种资源(如 Pod、Deployment、Service)。
    • 状态查询:使用 kubectl get 查看集群中有哪些资源,使用 kubectl describe 查看资源的详细状态和故障原因。
    • 故障排查:使用 kubectl logs 查看容器日志,或使用 kubectl exec 进入容器内部进行调试。
    • 集群配置:管理用户权限、命名空间配置等。

更多推荐