k8s从初识到上天系列第二篇:kubernetes的组件和架构

😉😉 欢迎加入我们的学习交流群呀!

✅✅1:这是孙哥suns给大家的福利!

✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring、SpringSecurity、Docker、Grpc、各种MQ、Rpc、SpringCloud等等很多应用和源码级别高质量视频和笔记资料,你想学的我们这里都有!

🥭🥭3:QQ群:583783824   📚📚  工作VX:BigTreeJava 拉你进VX群,免费领取!

💞💞4:以上内容,进群免费领取呦~ 💞💞💞💞

🥭🥭5:学完帮你进大厂~~

一:kubernetes组件

1:集群组件概述

官方说法:

        当部署完 Kubernetes,便拥有了一个完整的集群。一组工作机器,称为节点, 会运行容器化应用程序。 每个集群至少有一个工作节点 。工作节点会 托管Pod ,而 Pod 就是作为应用负载的组件。控制平面管理集群中的工作节点和Pod。

说人话版本:

        集群:cluster,多个几点被组织到一起共同为系统提供服务过程称之为集群。本质上是将承载同一个软件服务节点组织到一起,称之为该软件(服务)的集群,当然集群中的节点身份地位是不一样的。

        k8s集群也是如此,他也是多个节点组成。不过,在k8s世界中,一组工作的机器才被称之为节点。

        k8s集群中有多个节点,我们一般建议是三个节点。三个节点有两种,第一种是Control Plane控制节点,这个类似于我们常规理解的master节点,第二种节点是work node节点类似于我们常规理解的slave。

        控制节点主要是负责调度的,他主要是负责容器的管理和资源分配。真正的work节点才是真正运行咱们得应用程序容器的。

        k8s管理的单元不是容器而是Pod,Pod不是容器,Pod相当于是给容器进行了包裹。一个Pod里边可以运行多个容器。Pod就是负载组件,控制平台管理集群中的工作节点和Pod

·        官方给的这个图:左侧是控制平面组件,右侧是我们的工作节点,一共有三个,工作节点是用来真正运行工作容器的。

        控制节点上边就是运行了一堆k8s的组件,后边我们都会分享。

2:控制平面组件 (Control Plane Components)

官方版:

        控制平面组件会为集群做出全局决策,比如资源的调度。以及检测和响应集群事件,例如当不满足部署的replicas字段时,要启动新的 pod

说人话版:        

        控制平面组件这个组件就是管调度的。检测、资源调度等等。

        控制平面组件可以在集群中的任何节点上运行。 然而,为了简单起见,设置脚本通常会在同一个计算机上启动所有控制平面组件, 并且不会在此物理机上运行用户容器,也就是Master上不会跑Pod。

(一):kube-apiserver

官方版:

        API server是 Kubernetes 控制平面的组件,该组件负责公开了Kubernetes API,负责处理接受请求的工作。API server是 Kubernetes控制平面的前端。Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver 设计上考虑了水平扩缩,也就是说,它可通过部署多个实例来进行扩缩。 你可以运行kube-apiserver 的多个实例,并在这些实例之间平衡流量。

说人话版:

        说白了就是操作k8s的集群的API总入口,我们操作整个的k8s集群需要些写一些命令,这些命令会优先会被apiserver接收到,我们通过Rest或者是命令的方式去调度就行了。他就是控制平面组件的总入口,就是接口用户命令的。API Server是控制平台组件的前端,但是他的真正底层实现是基于接口实现的方式,基于kube-apiserver他可以通过部署多个实例来进行扩缩,在诸多实例中实现流量平衡。

        这玩意就是接收命令请求的。

(二):etcd

        一致且高度可用的键值存储,用作k8s所有集群数据的后台数据库

        这里边存储的是集群元数据,所谓元数据就是记录集群信息的,类似于MySQL数据库,information_schema下的数据。

(三):kube-scheduler

官方说法:

        kube-scheduler是控制平面的组件,负责监视新创建的、未指定运行节点node的 Pods, 并选择节点来让 Pod 在上面运行。调度决策考虑的因素包括单个 Pod 及Pods 集合的资源需求、软硬件及策略约束、 亲和性及反亲和性规范、数据位置、工作负载间的干扰及最后时限。

(四):kube-controller-manager

        kube-controller-manager 是控制平面的组件,负责运行控制器进。从逻辑上讲,但是为了降低复杂性,它们每个控制器都是一个单独的进程,都被编译到同一个可执行文件,并在同一个进程中运行。

这些控制器包括:

        节点控制器(Node Controller):负责在节点出现故障时进行通知和响应。

        任务控制器(Job Controller):监测代表一次性任务的Job 对象,然后创建 Pods 来运行这些任务直至完成。

        端点分片控制器(EndpointSlice controller):填充端点分片(EndpointSLice)对象(以提供 Service 和 Pod 之间的链接)。

        服务账号控制器(ServiceAccount controller):为新的命名空间创建默认的服务账号(ServiceAccount)

(五):cloud-controller-manager

        一个Kubernetes控制平面组件,嵌入了特定云平台的控制逻辑。云控制器管理器(Cloud Controller Manager)允许你将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。

        cloud-controller-manager 仅运行特定于云平台的控制器。 因此如果你在自己的环境中运行 Kubernetes,或者在本地计算机中运行学习环境, 所部署的集群不需要有云控制器管理器。与 kube-controller-manager 类似,cloud-controller-manager 将若干逻辑上独立的控制回路组合到同一个可执行文件中, 供你以同一进程的方式运行。 你可以对其执行水平扩容(运行不止一个副本)以提升性能或者增强容错能力。

         下面的控制器都包含对云平台驱动的依赖:
        节点控制器(Node Controller):用于在节点终止响应后检查云提供商以确定节点是否已被删除。

        路由控制器(RouteController):用于在底层云基础架构中设置路由

        服务控制器(Service Controller):用于创建、更新和删除云提供商负载均衡器

        如果咱们使用云平台的话,一般云平台中都直接选用现成的k8s集群使用。这个目前研究太深意义不大。

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

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

相关文章

UDF学习(五)FLUENT UDF-DEFINE_INIT宏和DEFINE_DELTAT宏和DEFINE_ADJUST宏

FLUENT UDF-DEFINE_INIT宏 以此为例: DEFINE_INIT(init,domain)//一般格式 #include"udf.h" DEFINE_INIT(init,domain) { cell_t c; Thread *thread; real xc[ND_ND],x,y; thread_loop_c(thread,domain) { begin_c_loop(c,thread) } C_CENTROID(xc,c,t…

【C++】C++ 入门 — 命名空间,输入输出,函数新特性

C 1 前言2 命名空间2.1 概念引入2.2 开始使用2.3 投入应用 3 输入与输出3.1 基础知识3.2 开始使用3.3 注意局限 4 函数新特性4.1 缺省参数4.1.1 开始使用4.1.2 注意事项 4.2 函数重载4.2.1 开始使用4.2.2 如何实现 Thanks♪(・ω・)ノ谢谢阅读下…

Python算法题集_接雨水

本文为Python算法题集之一的代码示例 题目42:接雨水 说明:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1]…

银行数据仓库体系实践(11)--数据仓库开发管理系统及开发流程

数据仓库管理着整个银行或公司的数据,数据结构复杂,数据量庞大,任何一个数据字段的变化或错误都会引起数据错误,影响数据应用,同时业务的发展也带来系统不断升级,数据需求的不断增加,数据仓库需…

HBase入门:运行机制

文章目录 HBase 系统架构客户端ZooKeeper 服务器Master 主服务器Region 服务器 Region 服务器工作原理用户读写数据的过程缓存的刷新StoreFile合并 Store 的工作原理HLog 的工作原理 HBase 系统架构 HBase 的系统架构包括客户端、ZooKeeper 服务器、Master 主服务器、Region服…

Liunx基础-----------------------第十六章网站服务

一、概念 UI的转变:B/S框架 HYML:超文本标记语言 网页:使用HTML,PHP,JAVA语言格式书写的文件 主页:网页中呈现用户的第一个页面 网站:多个网页组合而成的一台网站服务器 URL:统…

【HarmonyOS应用开发】开发介绍 DevEco Studio安装与使用(一)

内容比较长,干货满满,全是实战操作内容,希望耐心观看,如果对你有所帮助,请点个赞! 官方文档:https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101667303102887820 访…

上位机图像处理和嵌入式模块部署(c/c++ opencv)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 opencv可以运行在多个平台上面,当然windows平台也不意外。目前来说,opencv使用已经非常方便了,如果不想自己编译…

【Godot4自学手册】第七节背景搭建

各位同学,今天是第七节,在本节我会学习如何使用TileMap来完成背景搭建。 一、添加TileMap结点 先做个介绍,TileMap是基于 2D 图块的地图节点。Tilemap(图块地图)使用 TileSet,其中包含了图块的列表&#…

1、什么是特征工程

1、欢迎来到特征工程!! 在这门课程中,你将学习到构建一个优秀的机器学习模型过程中最重要的一步:特征工程。你将学习如何: 使用互信息确定哪些特征最重要在几个真实世界的问题领域中创造新的特征使用目标编码对高基数分类进行编码使用k-means聚类创建分割特征使用主成分分析…

分段函数线性化方法matlab测试

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

Python初学者学习记录——python基础综合案例:数据可视化——地图可视化

一、基础地图使用 1、基础地图演示 2、基础地图演示——视觉映射器 from pyecharts.charts import Map from pyecharts.options import VisualMapOpts# 准备地图对象 map Map() # 准备数据 data [("北京市", 99),("上海市", 199),("湖南省", 2…