Kubernetes(k8s)容器编排组件介绍

news2024/10/7 4:23:33

目录

  • 1 整体架构
    • 1.1 Master 架构
    • 1.2 Node 架构
  • 2 k8s部署组件介绍
    • 2.1 K8s 集群架构图
    • 2.2 k8s控制组件
      • 2.2.1 控制平面
      • 2.2.2 kube-apiserver
      • 2.2.3 kube-scheduler
      • 2.2.4 kube-controller-manager
      • 2.2.5 etcd
    • 2.3 k8s运行组件
      • 2.3.1 k8s节点
      • 2.3.2 容器集
      • 2.3.3 容器运行时引擎
      • 2.3.4 kubelet
      • 2.3.5 kube-proxy
    • 2.4 k8s 存储组件
      • 2.4.1 持久存储
      • 2.4.2 容器镜像仓库
      • 2.4.3 底层基础架构
  • 3 k8s安装部署


1 整体架构

在这里插入图片描述

下图清晰表明了 Kubernetes 的架构设计以及组件之间的通信协议。

在这里插入图片描述

下面是更抽象的一个视图

在这里插入图片描述

1.1 Master 架构

在这里插入图片描述

1.2 Node 架构

在这里插入图片描述

2 k8s部署组件介绍

我们把一个有效的 Kubernetes 部署称为集群,您可以将 Kubernetes 集群可视化为两个部分:

	控制平面与计算设备(或称为节点),每个节点都是其自己的 Linux环境,并且可以是物理机或虚拟机,每个节点都运行由若干容器组成的容器集。

2.1 K8s 集群架构图

以下 K8s 架构图显示了 Kubernetes 集群的各部分之间的联系:

在这里插入图片描述

2.2 k8s控制组件

2.2.1 控制平面

K8s 集群的神经中枢

	让我们从 Kubernetes 集群的神经中枢(即控制平面)开始说起。在这里,我们可以找到用于控制集群的 Kubernetes 组件以及一些有关集群状态和配置的数据,这些核心 Kubernetes 组件负责处理重要的工作,以确保容器以足够的数量和所需的资源运行。 

	控制平面会一直与您的计算机保持联系。集群已被配置为以特定的方式运行,而控制平面要做的就是确保万无一失。

2.2.2 kube-apiserver

K8s 集群API,如果需要与您的 Kubernetes 集群进行交互,就要通过 API

	Kubernetes API 是 Kubernetes 控制平面的前端,用于处理内部和外部请求。API 服务器会确定请求是否有效,如果有效,则对其进行处理,您可以通过 REST 调用、kubectl 命令行界面或其他命令行工具(例如 kubeadm)来访问 API。

2.2.3 kube-scheduler

K8s 调度程序,您的集群是否状况良好?如果需要新的容器,要将它们放在哪里?这些是 Kubernetes 调度程序所要关注的问题。

	调度程序会考虑容器集的资源需求(例如 CPU 或内存)以及集群的运行状况。随后,它会将容器集安排到适当的计算节点。

2.2.4 kube-controller-manager

K8s 控制器,控制器负责实际运行集群,而 Kubernetes 控制器管理器则是将多个控制器功能合而为一

	控制器用于查询调度程序,并确保有正确数量的容器集在运行。如果有容器集停止运行,另一个控制器会发现并做出响应。控制器会将服务连接至容器集,以便让请求前往正确的端点。还有一些控制器用于创建帐户和 API 访问令牌。

2.2.5 etcd

键值存储数据库

	配置数据以及有关集群状态的信息位于 etcd(一个键值存储数据库)中。etcd 采用分布式、容错设计,被视为集群的最终事实来源。

2.3 k8s运行组件

2.3.1 k8s节点

Kubernetes 集群中至少需要一个计算节点,但通常会有多个计算节点。

	容器集经过调度和编排后,就会在节点上运行。如果需要扩展集群的容量,那就要添加更多的节点。

2.3.2 容器集

容器集是 Kubernetes 对象模型中最小、最简单的单元。

	它代表了应用的单个实例。每个容器集都由一个容器(或一系列紧密耦合的容器)以及若干控制容器运行方式的选件组成。容器集可以连接至持久存储,以运行有状态应用。

2.3.3 容器运行时引擎

为了运行容器,每个计算节点都有一个容器运行时引擎。

	比如 Docker,但 Kubernetes 也支持其他符合开源容器运动(OCI)标准的运行时,例如 rkt 和 CRI-O。

2.3.4 kubelet

每个计算节点中都包含一个 kubelet,这是一个与控制平面通信的微型应用。

	kublet 可确保容器在容器集内运行,当控制平面需要在节点中执行某个操作时,kubelet 就会执行该操作。

2.3.5 kube-proxy

每个计算节点中还包含 kube-proxy,这是一个用于优化 Kubernetes 网络服务的网络代理。

	kube-proxy 负责处理集群内部或外部的网络通信——靠操作系统的数据包过滤层,或者自行转发流量。

2.4 k8s 存储组件

2.4.1 持久存储

除了管理运行应用的容器外,Kubernetes 还可以管理附加在集群上的应用数据。

	Kubernetes 允许用户请求存储资源,而无需了解底层存储基础架构的详细信息。持久卷是集群(而非容器集)所特有的,因此其寿命可以超过容器集。

2.4.2 容器镜像仓库

Kubernetes 所依赖的容器镜像存储于容器镜像仓库中。

	这个镜像仓库可以由您自己配置的,也可以由第三方提供。

2.4.3 底层基础架构

您可以自己决定具体在哪里运行 Kubernetes。

	答案可以是裸机服务器、虚拟机、公共云提供商、私有云和混合云环境。Kubernetes 的一大优势就是它可以在许多不同类型的基础架构上运行。

3 k8s安装部署

Kubernetes(k8s)环境部署:https://blog.csdn.net/ZGL_cyy/article/details/124682630

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机试复试准备中--梦校真题

一、矩阵转置二、统计单词写法一:读取一整行写法二:依次读入每一个单词 三、二叉排序树(DFS)四、IP地址五、特殊排序六、ab(高精度加法)七、奇偶校验八、最大的两个数九、二叉树遍历(DFS)十、成绩排序十一、…

【C++学习】C++入门 | 引用 | 引用的底层原理 | auto关键字 | 范围for(语法糖)

写在前面: 上一篇文章我介绍了缺省参数和函数重载, 探究了C为什么能够支持函数重载而C语言不能, 这里是传送门,有兴趣可以去看看:http://t.csdn.cn/29ycJ 这篇我们继续来学习C的基础知识。 目录 写在前面&#x…

正交编码与正交沃尔什函数详解

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 正交编码正交编码的…

Spring Boot 集成 WebSocket 实现服务端推送消息到客户端

假设有这样一个场景:服务端的资源经常在更新,客户端需要尽量及时地了解到这些更新发生后展示给用户,如果是 HTTP 1.1,通常会开启 ajax 请求询问服务端是否有更新,通过定时器反复轮询服务端响应的资源是否有更新。 在长…

css基础(二)

目录 1. CSS 的复合选择器 1.1 什么是复合选择器 1.2 后代选择器(重要) 1.3 子选择器(重要) 1.4 并集选择器(重要) 1.5 伪类选择器 1.6 链接伪类选择器 1.7 :focus伪类选择器 1.8 复合选择器总结 二、 CSS 的元素显示模式 2.1什么是元素显示模…

多线程编程和并行计算的实例:期货交易及打车软件算法

多线程编程和并行计算的实例:期货交易及打车软件算法 解决现实生活中的问题时,多处理器和多核系统的普及使并行计算成为一个关键的性能提升手段。在这篇博客中,我们将通过深入讨论两个引人入胜而又具有实际意义的场景——期货交易和打车匹配算法&#xf…

CSS圆角进化论

CSS圆角发展过程 大致经历了3个阶段,包括: 背景图片实现圆角CSS2.0标签模拟圆角CSS3.0圆角属性(border-radius属性)实现圆角 ☛背景图片实现圆角:使用背景图片实现圆角的方式很多,实现的方式和圆角的切图方式关系密…

AI绘图软件分享:Midjourney 基础教程(三)

大家好,我是权知星球,今天继续给大家分享Midjourney 基础教程(三):Midjourney 图生图。 刚开始学习使⽤ AI 绘画时,⼤部分⼈的绘画⽅式: 有⼀个想象中的画⾯,⽤中⽂将这个画⾯描述…

【文件操作与IO】Java中如何操作文件

目录 Java 中操作文件 File 概述 属性 构造方法 方法 代码示例 文件内容的读写 —— 数据流 InputStream 概述 FileInputStream 概述 利用 Scanner 进行字符读取 OutputStream 概述 利用 OutputStreamWriter 进行字符写入 利用 PrintWriter 找到我们熟悉的方法 代码…

D. A Wide, Wide Graph(树的直径)

Problem - 1805D - Codeforces 给定一棵包含n个节点的树(一个无环联通图),对于一个固定的整数k,定义Gk为一个具有n个节点的无向图,其中只有当在给定树中节点u和v之间的距离至少为k时才存在边。 对于从1到n的每个k&…

undefined reference to `tputs‘

昨天在Debian11 上编译 bluez 的时候,看这里,出现了如下这个错误,一般这种未定义的错误提示都是没有链接正确的库导致,但是搞了很久都没解决。 奇怪的是之前在 Centos 上编译却没有遇到这个问题,而且在 configure 时也…

做Java开发,真的“穷途末路”了吗?浅谈从2018-2023年,这行到底“卷”成了啥样

文章目录 一、火爆的行业1、裁员潮引发的行业惶恐2、国情下的行业现状3、时代的快速发展 二、Java开发“卷”成了啥样1、2013年2、2018年3、2013年4、真的需要这么多知识吗 三、大龄程序员何去何从引用来处 一、火爆的行业 “程序员”这个代名词,似乎总是跟“高薪”…

基于多进程并发-进程通讯之管道(pipe)

一、管道(pipe) 所谓的管道,就是内核⾥⾯的⼀串缓存(Pipe)。一个进程从管道的⼀端写⼊的数据,实际上是缓存在内核中的,另⼀端读取,也就是从内核中读取这段数据。 特性:…

windwos2016 由于没有远程桌面授权服务器可以提供许可证

一、问题: 经常会遇到,server2016、server2012、server2008操作系统,安装远程桌面服务之后没有激活,经过120天到期之后,没办法再使用,重新安装激活远程桌面服务也不能用。 二、具体的报错如下图&#xff…

归并排序详解-附Python代码

排序思路 将输入的列表递归分解成若干个有序的子列表(只含有一个元素);将分解后的有序子列表两两归并成一个新的有序列表;重复步骤2,直到完成排序。 重点:如何定义一个归并函数,可以将两个有序…

Qt-自定义控件

Qt-自定义控件 简单使用 首先创建一个工程 在现有的工程上添加文件,选择Qt设计师界面类 选择Widget 添加两个控件之后,选择水平布局 将刚刚自定义的控件smallWidget放置在原始的控件中 首先在原始工程的ui界面 随便放置一个widget 选择&#xff…

我的内网渗透-代理转发(1)

概念 网关 必须经过 用来进行路由转发的设备,网关的作用是让不同网段之间能够通信 代理 委托访问 无论代理后面挂了几台设备,都认为是从代理进行访问,对外只表现为代理一台。外部认为是与代理进行…

计算机提示xinput1_3.dll丢失,三个详细修复方法

打开《绝地求生》游戏的时候,计算机提示xinput1_3.dll丢失,无法启动运行。重新安装一遍游戏依然无法启动运行。这个是由于xinput1_3.dll文件是属于电脑系统DirectX9.0的一个组件,用于提供输入和输出功能。它包含了各种接口和函数,…

spi控制器和spi设备的加载过程

spi控制器都是挂在platform总线上的,所以要等platform总线上的设备驱动加载spi控制器完成后才能加载spi设备。 1.spi控制器加载 由spi控制器驱动程序调用spi_register_master来完成spi控制器驱动加载 int spi_register_master(struct spi_master *master) { ... s…

【ubuntu20.04上构建qemu启动linux kernel】

参考Ubuntu环境下使用qemu搭建arm64运行环境 - 简书 一、交叉编译工具 sudo apt install gcc-aarch64-linux-gnu aarch64-linux-gnu-gcc -v 二、linux内核编译 git clone https://github.com/torvalds/linux.git cp arch/arm64/configs/virt.config .config make ARCHarm64 m…