kubectlkubeadm 和 kubelet,kube-proxy的概念和关系

一、kubeadm:K8s 集群的 “搭建工程师”

核心定位

如果把 K8s 集群比作一栋大楼,kubeadm 就是负责 “打地基、搭框架” 的工程师,专门用来快速搭建 K8s 集群的工具

具体工作内容
  1. 初始化集群骨架

    • 启动集群时,只需要一条命令(比如 kubeadm init),它就会自动:
      • 部署控制平面组件(如 API Server、Scheduler、Controller Manager);
      • 配置网络插件(让容器能互相通信);
      • 生成集群运行所需的证书和配置文件。
    • 就像盖楼时先搭好承重柱和横梁,kubeadm 会确保集群的基础架构能稳定运行。
  2. 添加节点到集群

    • 当需要扩展集群(比如增加更多服务器)时,kubeadm join 命令会生成一个 “入伙凭证”,新节点用这个凭证就能加入集群,就像往大楼里添加更多房间。
  3. 简化环境依赖

    • 自动处理 K8s 运行所需的依赖(如 Docker、containerd 容器运行时),不用手动逐个安装配置,降低了搭建集群的门槛。
类比理解

kubeadm 就像 “一键安装包”,比如你想搭建一个论坛网站,不需要从零搭建服务器环境,用 kubeadm 类似的工具能快速部署好论坛的基础架构。

二、kubelet:节点上的 “容器管家”

核心定位

每个 K8s 节点(物理机或虚拟机)上都必须运行 kubelet,它是节点的 “大管家”,负责管理节点上的所有容器。

具体工作内容
  1. 接收并执行指令

    • 控制平面(如 API Server)会告诉 kubelet:“在这个节点上运行某个容器应用”,kubelet 就会调用容器运行时(如 Docker、containerd)来启动容器,就像管家按主人的要求安排任务。
  2. 监控容器状态

    • 持续检查容器是否在运行、资源使用情况(CPU、内存),如果容器挂了,会尝试重启;如果节点资源不足,会向控制平面汇报,避免过载。
  3. 节点与集群的 “桥梁”

    • 收集节点的健康状态、资源信息(如硬盘空间),反馈给控制平面,让集群知道每个节点的 “健康情况”,以便调度任务。
类比理解

kubelet 类似小区物业管家:

  • 业主(控制平面)下达 “安排住户(容器)入住” 的指令,管家负责找房间(节点资源)、安排入住(启动容器);
  • 平时监控住户是否正常生活(容器运行状态),有问题及时处理(重启容器),并向业主汇报小区情况(节点状态)。

三、kubectl:用户的 “集群遥控器”

核心定位

kubectl 是用户与 K8s 集群交互的命令行工具,就像电视遥控器,通过它可以向集群发送各种操作指令。

具体工作内容
  1. 管理集群资源

    • 用 kubectl 可以创建、删除、查看各种 K8s 资源,比如:
      • 部署应用:kubectl apply -f app.yaml(根据配置文件启动容器应用);
      • 查看状态:kubectl get pods(查看所有运行的容器组);
      • 伸缩应用:kubectl scale deployment my-app --replicas=5(把应用副本数增加到 5 个)。
    • 就像用遥控器切换电视频道、调节音量,kubectl 让用户能灵活控制集群。
  2. 调试与排查问题

    • 当容器应用出问题时,用 kubectl logs pod-name 查看日志,或 kubectl exec -it pod-name sh 进入容器内部调试,相当于用遥控器检查电视哪里出了故障。
  3. 配置集群参数

    • 通过修改配置文件,用 kubectl 提交更新,比如调整应用的资源限制、更新镜像版本等,实时修改集群的运行方式。

类比理解

kubectl 就是用户的 “集群遥控器”:想让集群做什么,直接通过命令告诉它 —— 比如 “我要启动一个微信服务”“我要看当前有多少个容器在运行”,所有操作都通过这个工具来传达。

四、三者的协作关系:从 “搭建” 到 “管理” 的全流程

  1. 搭建阶段kubeadm 负责快速搭好集群框架,初始化控制平面和节点;
  2. 运行阶段:每个节点的 kubelet 负责管理本地容器,与控制平面通信;
  3. 操作阶段:用户通过 kubectl 向集群发送指令,kubelet 接收并执行,实现对容器应用的管理。

类比场景

  • 建小区(集群):kubeadm 负责买地、建楼(初始化集群);
  • 小区运营:每个楼的管家(kubelet)管理住户(容器),处理日常事务;
  • 业主操作:住户(用户)通过物业系统(kubectl)提交需求(如报修、搬家),管家接收并处理。

五,kube-proxy:集群网络的 “交通指挥员” 

1. 核心定位:让容器服务能被 “找到”

K8s 集群中,每个容器都有自己的 IP,但当容器被部署在不同节点上时,如何让它们互相访问?kube-proxy就是解决这个问题的 “网络管家”,负责实现服务的网络通信和负载均衡。

2. 具体工作内容:三种 “交通指挥” 模式
  • 模式 1:iptables 代理(默认)
    就像在路口设置路牌,kube-proxy用 Linux 的iptables规则,将访问服务 IP 的请求转发到具体的容器 IP 上。例如,当用户访问 “微信服务” 的 IP 时,iptables规则会告诉网络:“把请求交给节点 A 上的微信容器 1 或节点 B 上的微信容器 2”,实现流量分发。

  • 模式 2:ipvs 代理(高性能场景)
    iptables更高效的 “智能交通系统”,适合大规模集群。它维护一个服务到容器的映射表,像高速路的 ETC 系统一样快速转发流量,减少延迟。

  • 模式 3:userspace 代理(旧版本兼容)
    相当于 “人工指挥交通”,所有流量先经过kube-proxy进程再转发给容器,性能较低,现在很少用。

3. 类比理解:快递分拣中心
  • 集群中的服务(如 Web 应用)像 “快递公司总部”,有一个对外的地址(服务 IP);
  • kube-proxy像分拣中心的工作人员,收到寄给 “总部” 的快递(网络请求)后,根据包裹信息(请求类型),把快递送到具体的分店(容器实例),确保每个请求都能准确到达目的地。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89829.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89829.shtml
英文地址,请注明出处:http://en.pswp.cn/web/89829.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

langchain调用本地ollama语言模型和嵌入模型

参考:ollama兼容OpenAIEmbeddings的解决思路 解决代码: 访问embedding模型代码 # 测试以下两个引用都可以 from langchain_openai import OpenAIEmbeddings #from langchain_community.embeddings import OpenAIEmbeddings from typing import List,…

gitlab私有化部署

以下是整理好的Markdown格式文档,详细描述了从下载镜像、启动镜像、修改external_url以及设置或重置root密码的步骤。 GitLab 安装与配置指南 本文档将指导您完成GitLab的安装和基本配置过程,包括下载镜像、启动容器、修改外部访问URL(external_url)及设…

CCLink IE转ModbusTCP网关配置无纸记录器(上篇)

本研究案例采用CCLink IE转ModbusTCP网关技术,实现了将记录仪数据传输至三菱PLCPLC的过程。具体操作步骤如下所述。在确保无纸记录仪与PT100传感器传感器的连接无误后,应将无纸记录仪与个人计算机(PC)通过以太网线进行连接&#x…

近期工作感想:职业规划篇

最近整理博客时,撞见意外的惊喜——17年刚毕业那会儿写的职业规划,静静躺在回收站里。 重读那些碎碎念,忍不住想笑:那时候的焦虑太真切了,哪敢想后来会遇到这么多大佬,推着我往前一直阴暗爬行😂…

Matlab自学笔记六十四:求解自变量带有约束条件的方程

1.说明 有一些方程由于实际问题的需要,需要设置一些限制约束条件,例如x>0等,若使用Matlab编程求解,首先尝试使用符号运算求解(符号运算可参考文章54:Matlab自学笔记五十四:符号数学工具箱和…

Flutter状态管理篇之ChangeNotifier(二)

目录 前言 一、ChangeNotifier定义 1.ChangeNotifier定义 2.Listenable的定义 二、继承体系 三、核心方法解析 1.类结构与属性分析 1.Listenable的定义 2..核心字段 1.属性解析 1._count 2._listeners 3.为什么不用const [] 4._notificationCallStackDep…

大带宽服务器对于高流量网站的作用

随着科学技术的快速发展,越来越多的网站面临着高流量的访问需求,在同一时间中会有着大量的用户进行访问,同时也提高了该企业的知名度,但是这对于服务器的性能需求也在逐渐增高,而大带宽服务器卓越的性能和稳定的传输能…

2025年算法备案发号规律总结与下半年发号预测

上半年发号规律总结图太糊?可看下方表格(左划看全表)👇今年批次算法备案总批次发布时间所发当批算法材料提交时间段审核周期25年第一批第十批2025/3/122025年1月(春节前)约2个月25年第二批第十一批2025/5/1…

高光谱相机(Hyperspectral Camera)

高光谱相机(Hyperspectral Camera)高光谱相机:是一种可以采集连续、多达上百个窄波段的光谱信息的成像设备。它的核心特征是:每个像素点都拥有一个完整的光谱曲线,类似于“像素级别的光谱仪”。举例:普通彩…

经典排序算法之归并排序(Merge Sort)

归并算法定义:所谓归并排序是指将两个或两个以上有序的数列(或有序表),合并成一个仍然有序的数列(或有序表)。这样的排序方法经常用于多个有序的数据文件归并成一个有序的数据文件。归并排序相比较之前的排…

Linux系统环境下 Node.js 20 安装实践:glibc 2.17 兼容方案与工具链优化

前言:在 CentOS 7.9 的生产环境中,默认搭载的 glibc 2.17 是系统的核心依赖,直接升级它可能引发稳定性风险。而 Node.js 20 作为较新的运行时,其与 glibc 的兼容性长期困扰着开发者:为什么有些场景下 Node.js 20 能直接…

构建一个简单的Java框架来测量并发执行任务的时间

文章目录一、完整代码二、代码解释1、方法签名2、初始化CountDownLatch3、提交任务到执行器4、任务线程的逻辑5、主线程的逻辑详细解释总结以下代码实现了一个简单的框架,用于测量并发执行任务的时间。它使用了Executor来执行任务,并通过CountDownLatch来…

精通 triton 使用 MLIR 的源码逻辑 - 第001节:triton 的应用简介

项目使用到 MLIR,通过了解 triton 对 MLIR 的使用,体会到 MLIR 在较大项目中的使用方式,汇总一下。1. Triton 概述OpenAI Triton 是一个开源的编程语言和编译器,旨在简化 GPU 高性能计算(HPC) 的开发&#…

Python爬虫-政务网站自动采集数据框架

前言 本文是该专栏的第81篇,后面会持续分享python爬虫干货知识,记得关注。 本文,笔者将详细介绍一个基于政务网站进行自动采集数据的爬虫框架。对此感兴趣的同学,千万别错过。 废话不多说,具体细节部分以及详细思路逻辑,跟着笔者直接往下看正文部分。(附带框架完整代码…

GitHub 趋势日报 (2025年07月19日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图1054shadPS4695n8n361remote-jobs321maigret257github-mcp-server249open_deep_res…

2025开源组件安全工具推荐OpenSCA

OpenSCA是国内最早的开源SCA平台,继承了商业级SCA的开源应用安全缺陷检测、多级开源依赖挖掘、纵深代码同源检测等核心能力,通过软件成分分析、依赖分析、特征分析、引用识别、合规分析等方法,深度挖掘组件中潜藏的各类安全漏洞及开源协议风险…

旅游管理实训基地建设:筑牢文旅人才培养的实践基石

随着文旅产业的蓬勃发展,行业对高素质、强实践的旅游管理人才需求日益迫切。旅游管理实训基地建设作为连接理论教学与行业实践的关键纽带,既是深化产教融合的重要载体,也是提升旅游管理专业人才培养质量的核心抓手。一、旅游管理实训基地建设…

网络爬虫的相关知识和操作

介绍 爬虫的定义 爬虫(Web Crawler)是一种自动化程序,用于从互联网上抓取、提取和存储网页数据。其核心功能是模拟人类浏览行为,访问目标网站并解析页面内容,最终将结构化数据保存到本地或数据库。 爬虫的工作原理 …

【vue-6】Vue3 响应式数据声明:深入理解 ref()

在 Vue3 的 Composition API 中,ref() 是最基础也是最常用的响应式数据声明方式之一。它为开发者提供了一种简单而强大的方式来管理组件状态。本文将深入探讨 ref() 的工作原理、使用场景以及最佳实践。 1. 什么是 ref()? ref() 是 Vue3 提供的一个函数&…

HTML常用标签汇总(精简版)

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>简单标记</title> </head><body>&…