kubectlkubeletrancherhelmkubeadm这几个命令行工具是什么关系?

背景

在最近学习k8s的过程中,发现kubectl&kubelet&rancher&helm&kubeadm这几个命令怎么在交错使用,他们究竟是什么关系?他们分别应该在什么情况下使用呢?这里我进行了简单的总结,做个区分。

各工具说明

Kubectl是一款用于管理和操作 Kubernetes 集群的命令行工具,是Kubernetes 的一个标准 CLI,具备可扩展性,可以通过插件增加新功能和命令。它通过与 Kubernetes 控制平面(通常称为 apiserver)交互来实现对集群内资源的增删改查。

Rancher是一套容器管理平台,提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。所以Rancher不仅可以管理k8s,还可以管理Docker集群。

Kubelet 是 kubernetes 工作节点上的一个代理组件,运行在每个节点上。定期从kube-apiserver组件接收新的或修改的Pod规范,并确保Pod及其容器在期望规范下运行。同时该组件作为工作节点的监控组件,向kube-apiserver汇报主机的运行状况。

Kubeadm 是一个用于在 Kubernetes 中快速部署集群的命令行工具,它主要负责引导和初始化 Kubernetes 主控节点(Master Node)以及创建必需的证书、配置文件和其他资源。

Helm 是 Kubernetes 的包管理器,类似于python的pip,Ubuntu中的apt、CentOS中的yum等,它用于自动创建、打包、配置和部署应用程序和服务到Kubernetes 集群。

关系示意图

图1.1  常用工具关系示意图

关系说明

首先得说明一个内容,那就是Kube-apiserver,对于集群的所有操作都需要通过该API服务,由该服务进行解析识别,才能转换成真正的操作,也就是说Kube-apiserver是kubernetes集群的对外标准API,要操作集群,就需要先对接该Kube-apiserver。

kubectl的执行链路

kubectl是Kubernetes 的一个标准 CLI,用于Kubernetes 集群管理工作,也就是说当通过命令行的方式发出命令,例如执行:

kubectl get pods 

该命令首先被kube-apiserver服务解析到,然后转换成kubernetes集群可以理解的内容进行执行,所有我们日常在命令框窗口中执行最多的也就是kubectl命令。

kubelet的执行链路

接着上面的内容,当kubectl发出命令之后,kube-apiserver进行了解析,然后将命令拆解到了集群的各个节点上,然后由Kubelet在特定节点上真正执行相关任务,例如返回该节点上pods的信息,删除或者创建pod等。

严格来说,kubelet不应该被开放给用户,他是在每个节点上用来保障当前节点的操作满足集群整体要求的组件。

所以一般也不直接使用kubelet,最常用的一个命令也就是

kubelet --version

kubeadm的执行链路

kubeadm是一个用于在 Kubernetes 中快速部署集群的命令行工具。在初始化过程中会通过调用 kubelet来创建容器运行时,并设置各种配置项。在创建集群期间,它会生成相关的证书和配置文件,这些文件将由 kube-apiserver 使用。kubeadm 还会调用 kube-apiserver 提供的集群 API 接口来创建证书、认证配置和集群对象,但它不会直接调用 kube-apiserver 来搭建整个集群。

简单来说,就是通过kubeadm创建了kubernetes集群,然后才有后续的kube-apiserver服务等一系列内容。

helm的执行链路

Helm是一个用于Kubernetes应用程序部署和管理的包管理器,他会生成Kubernetes的配置文件(YAML文件),然后使用kube-apiserver来完成配置文件的部署和管理。可以说Helm是通过调用kube-apiserver来实现Kubernetes资源的部署和管理,但不是直接实现包管理。

Rancher的执行链路

Rancher的命令行工具完全可以和Rancher界面化操作等同理解。

Rancher通过使用自己构建的Rancher Server组件与kube-apiserver进行通信,并以此来管理集群。Rancher Server会提供一个UI界面和API来管理集群的各个方面,它通过与kube-apiserver进行交互,来创建、修改和删除Kubernetes集群中的资源,例如节点的添加和删除、应用的部署和监控等。

其中界面就是我们见到的这个页面。

而命令行就是前文介绍的这个工具:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/304617.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

typora好看的颜色主题包

typora好看的颜色主题包 一、base.user.css二、orangeheart.css三、插入文件 一、base.user.css h1, h2, h3, h4, strong {font-weight: 600; }#write {counter-reset: h2; }h1 {counter-reset: h2; }h2 {counter-reset: h3; }h3 {counter-reset: h4; }h4 {counter-reset: h5; …

UE5 C++(十三)— 创建Character,添加增强输入

文章目录 创建Character第三人称模板添加增强输入引用在脚本中实现移动、旋转 创建Character第三人称模板 创建MyCharacter C类 添加增强输入引用 在DEMO.Build.cs 脚本中添加增强输入模块 有个容易出错的点,这里的设置一定要正确 然后添加引用到C头文件中 …

Lin总线基础:为什么Master节点需要外接上拉电阻

Lin(Local Interconnect Network)总线开发的小伙伴是否有过这样的疑问:为什么主节点(Master)的设计中,需要增加一个1KΩ的上拉电阻呢?如下所示: 提示:本文基于NXP TJA102…

字节8年经验之谈!一文从0到1带你入门接口测试【建议收藏】

扫盲内容: 1.为什么要做接口测试? 2.怎样做接口测试? 3.接口测测试点是什么? 4.接口测试都要掌握哪些知识? 5.其他相关知识? 一.为什么要做接口测试? ①.越底层发现bug,它的修复…

简单易懂的PyTorch激活函数大全详解

目录 torch.nn子模块Non-linear Activations nn.ELU 主要特点与注意事项 使用方法与技巧 示例代码 图示 nn.Hardshrink Hardshrink函数定义 参数 形状 示例代码 图示 nn.Hardsigmoid Hardsigmoid函数定义 参数 形状 示例代码 图示 nn.Hardtanh HardTanh函数…

Master01节点免密钥登录其他节点

1、执行命令 ssh-keygen -t rsa,一直敲回车 2、for i in k8s-master01 k8s-node01 k8s-node02;do ssh-copy-id -i .ssh/id_rsa.pub $i;done 输入yes和对应节点密码

【算法Hot100系列】最长有效括号

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

快手在线查权重源码,附带查询接口

源码介绍 新增了用户访问 IP 和时间的统计功能。要使用此功能,只需将“bygoukai.sql”数据库导入源码中,然后修改“config.php”文件中的数据库用户名、密码和数据库名即可。如果需要修改水印,可以在第40行进行更改。要修改查询限制&#xf…

eclipse正则表达式替换 Find/Replace

Find/Replace 对话框中使用正则表达式 CTRLF 打开 Find/Replace 对话框勾选 Regular expressions ​ 匹配注释 下图中的Find:/.*/ ​ 匹配换行符 换行符:\R 下图中的Find表达式:\R.*Excel.* ​ 新增空行 /** 替换为 \R\t/** ​ 选…

nuxt 不解析HTML结构bug

记录一个本人Vue3迁移Nuxt3的报错 报错信息 [Vue warn]: Failed to resolve directive: top [nitro] [unhandledRejection] TypeError: Cannot read properties of undefined (reading ‘getSSRProps’) 原因是Vue3在迁移到nuxt3的时候有一个自定义指令没有搬过来&#xff0…

色标在matplotlib和plottable中

是这样的,我有一个数组[-4.4, -2.8, -2.6, -2.2, -1.1, 1.1, 1.2, 1.3, 3.6, 6.0, 6.4, 12.3],它需要绘制散点图,点的颜色来代表数值大小;同时,也需要在plottable上作为一列显示,同样用颜色来代表数值的大小…

最新GPT4、AI绘画、DALL-E3文生图模型教程,GPT语音对话使用,ChatFile文档对话总结

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画,文档对话总结DALL-E3文生图,相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和…

自然语言处理-情感分析及数据集

情感分析及数据集 随着在线社交媒体和评论平台的快速发展,大量评论的数据被记录下来。这些数据具有支持决策过程的巨大潜力。 情感分析(sentiment analysis)研究人们在文本中 (如产品评论、博客评论和论坛讨论等)“隐…

conda操作使用教程

一 conda介绍 Conda 是一个开源的包管理系统和环境管理系统,用于在 Linux、Windows 和 macOS 上管理 Python 包和依赖项,java有maven, python有conda,它是python开发者的最爱。 Conda 的核心功能: 包管理:安装、更新、删除 Pytho…

自承载 Self-Host ASP.NET Web API 1 (C#)

本教程介绍如何在控制台应用程序中托管 Web API。 ASP.NET Web API不需要 IIS。 可以在自己的主机进程中自托管 Web API。 创建控制台应用程序项目 启动 Visual Studio,然后从“开始”页中选择“新建项目”。 或者,从“ 文件 ”菜单中选择“ 新建 ”&a…

如何在 Photoshop 中扩展背景

展示一些在 Photoshop 中扩展背景的简单有效的方法 1. 如何在 Photoshop 中扩展具有纯色背景的图像 步骤 1 让我们从打开第一张图片开始。点击 Control-O 并选择图片。 步骤 2 要在 Photoshop 中扩展具有纯色背景的图像的背景,您需要做的就是按 Alt-Control-C 并…

ubuntu安装到vmware

文章目录 最新ubuntu下载地址安装流程之创建虚拟机显示界面成功创建虚拟机安装流程之虚拟机中安装ubuntu 最新ubuntu下载地址 点击此处下载ubuntu 安装流程之创建虚拟机 显示界面成功创建虚拟机 安装流程之虚拟机中安装ubuntu 安装说明:采用ubuntu server版安装,版本号为ubu…

Spark与HBase的集成与数据访问

Apache Spark和Apache HBase分别是大数据处理和分布式NoSQL数据库领域的两个重要工具。在本文中,将深入探讨如何在Spark中集成HBase,并演示如何通过Spark访问和操作HBase中的数据。将提供丰富的示例代码,以便更好地理解这一集成过程。 Spark…

商城小程序(7.加入购物车)

目录 一、配置vuex二、创建购物车的store模块三、在商品详情页中使用store模块四、实现购加入购物车功能五、动态统计购物车中商品的总数量六、持久化存储购物车的商品七、优化商品详情页的total侦听器八、动态为tabBar页面设置数据徽标九、将设置tabBar徽标的代码抽离为mixins…

软件测试概念及分类整理汇总

前言 测试小伙伴在谈论软件测试分类,五花八门的分类,眼花缭乱。因为将各个维度划分的内容都整到一块了,在加上各自不同的见解与补充,各种冲突...... Findyou我经过多年测试总结基本定为4类测试(最多5类,自动化或者兼容…