当前位置: 首页 > news >正文

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集群中的资源,例如节点的添加和删除、应用的部署和监控等。

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

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

相关文章:

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

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

Day26 669修剪二叉搜索树 108有序数组转为二叉搜索树 538二叉搜索树转换为累加树

669 修剪二叉搜索树 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。 class Solution { pub…...

优化CentOS 7.6的HTTP隧道代理网络性能

在CentOS 7.6上,通过HTTP隧道代理优化网络性能是一项复杂且细致的任务。首先,我们要了解HTTP隧道代理的工作原理:通过建立一个安全的隧道,HTTP隧道代理允许用户绕过某些网络限制,提高数据传输的速度和安全性。然而&…...

第二篇ts,es6箭头函数结合typescript,和for...of

1.基本用法: const f v > v// 等同于const f function(v) {return v}2.箭头函数返回数组 const f () > {const list [1,2,3]// 直接返回一个对象return list.map(it > ({id: it}))}const result f() // [{id:1},{id:2},{id:3}]3.箭头函数和变量解构结合使用 cons…...

异构多品牌高清视频监控接入-技术方案

目 录 一、概述 二、建设目标及需求 (一)建设总目标 (二)需求分析 三、设计依据与设计原则 (一)设计依据 (二)设计原则 1、先进性与适用性 2、经济性与实用性 3、可靠性与安全性 4、开放性 5、可扩充性 6、追求最优化的系统设备配置 7、提高监管…...

编程探秘:Python深渊之旅-----机器学习入门(七)

团队决定在他们的项目中加入一些机器学习功能。瑞宝,对新技术充满好奇,跃跃欲试地想了解更多。 瑞宝(兴奋地):我一直想学习机器学习,现在终于有机会了! 龙(微笑着)&…...

SpringMVC 学习博客记录

文章目录 Servlet请求转发和请求包含RequestDispatcher HandlerInterceptor组件实际运用场景 HandlerMapping&RequestMappingInfo(HandlerMapping)HandlerExecutionChainHandlerAdapter源码学习知识点博客记录 Servlet请求转发和请求包含 RequestDispatcher Request#getR…...

重磅!OpenAI正式发布,自定义ChatGPT商店!

1月11日凌晨,OpenAI在官网正式发布了,自定义GPT商店,可以帮助用户找到目前最好用、流行的自定义ChatGPT助手。 在2024年第一季度,OpenAI将启动GPT 开发者收入计划。首先,美国地区的开发者将根据用户对其 GPT 的使用情…...

LeetCode讲解篇之47. 全排列 II

文章目录 题目描述题解思路题解代码 题目描述 题解思路 初始化一个nums中元素是否被访问的数组used、记录还需要递归的深度deep 遍历nums 如果当前元素被访问过或者当前元素等于前一个元素且前一个元素没被访问过就跳过该次遍历 否则选择当前元素,继续递归 直到…...

机器学习~从入门到精通(二)线性回归算法和多元线性回归

为什么要做数据归一化 一、数据归一化: 1.最值归一化 2.均值方差归一化import numpy as npX np.random.randint(1,100,size100) X X.reshape(-1,2) X.shape X np.array(X,dtypefloat) X[:,0] (X[:,0]-np.min(X[:,0]))/(np.max(X[:,0])-np.min(X[:,0])) X[:,1]…...

IPv6组播--PIM

IPv6组播路由协议 PIM(IPv6)作为一种IPv6网络中的组播路由协议,主要用于将网络中的组播数据流引入到有组播数据请求的组成员所连接的路由器上,从而实现组播数据流的路由查找与转发。 PIM(IPv6)协议包括PIM-SM(IPv6)和PIM-DM(IPv5)两种模式 IPv6组播协议定义 PIM(…...

如何在Spring Boot中使用EhCache缓存

1、EhCache介绍 在查询数据的时候,数据大多来自于数据库,我们会基于SQL语句与数据库交互,数据库一般会基于本地磁盘IO将数据读取到内存,返回给Java服务端,我们再将数据响应给前端,做数据展示。 但是MySQL…...

PDF 文档解除密码

PDF 文档解除密码 1. 文件 -> 文档属性 -> 安全 -> 文档限制摘要2. PDF365References 1. 文件 -> 文档属性 -> 安全 -> 文档限制摘要 密码保护《算法设计与分析基础_第3版.pdf》 2. PDF365 https://www.pdf365.cn/ 免费功能 -> PDF 去密码 开始去除 Re…...

React16源码: React中的expirationTime过期时间的计算源码实现

expirationTime 的计算方式 先看expirationTime相关的源代码,这里是异步的计算方式,它会有一个过期时间异步任务优先级比较低,可以被打断,防止一直被打断导致不能执行,所以React给它设置了 expirationTime 过期时间也…...

程序设计语言的分类

编译与解释 编译型 将源代码转换成目标代码,通常源代码是高级语言代码,目标代码是机器语言代码,执行编译的计算机程序称为编译器。 eg:java 好处:对于相同的源代码编译产生的目标代码执行速度更快,目标代码不需要编译…...

Python轻松实现炫酷的手势检测

大家好,今天分享一个非常有意思且十分简单的python库——mediapipe库。该库集成了大量的深度学习模型,短短几行代码,就可以快速实现一个炫酷的实例,本文就以手势检测为例,展示一下这个强大的开源库。 mediapipe由Goog…...

什么是信噪比

大家好,今天给大家介绍什么是信噪比,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 “信噪比”是电子技术中经常用到的一个词组,知道它的确切含义有一定意…...

学习redis有效期和数据类型

1、安装redis和连接redis 参考:ubuntu安装单个redis服务_ubuntu redis单机版安装-CSDN博客 连接redis:redis-cli.exe -h localhost -p 6379 -a 123456 2、Redis数据类型 以下操作我们在图形化界面演示。 2.1、五种常用数据类型介绍 Redis存储的是key…...

【linux】进程管理

前言 linux也有类似于windows的任务管理器的功能,我们也可以通过这个功能查看当前的进程情况。 语法 ps [-e] [-f] -e显示所有进程 -f显示完整的信息 我们可以直接用-ef来简化指令。 案例演示 信息过滤 但是如果我们直接这么输入的话,可以看到他回复…...

k8s operator从0到1实践

文章目录 环境准备一个k8s集群开发工具包mac安装 实践初始化operator项目核心逻辑编写测试验证验证 部署 参考 环境准备 一个k8s集群 推荐使用docker-desktop,本地单机集群 开发工具包 这里推荐使用脚手架工具kubebuilder 使用脚手架工具,能生成项目…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

【Veristand】Veristand环境安装教程-Linux RT / Windows

首先声明&#xff0c;此教程是针对Simulink编译模型并导入Veristand中编写的&#xff0c;同时需要注意的是老用户编译可能用的是Veristand Model Framework&#xff0c;那个是历史版本&#xff0c;且NI不会再维护&#xff0c;新版本编译支持为VeriStand Model Generation Suppo…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

CMS内容管理系统的设计与实现:多站点模式的实现

在一套内容管理系统中&#xff0c;其实有很多站点&#xff0c;比如企业门户网站&#xff0c;产品手册&#xff0c;知识帮助手册等&#xff0c;因此会需要多个站点&#xff0c;甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...