K8S的架构(1)

目录

一.k8s

K8S有 master 和 worker node 两类节点:

​编辑

二.K8S创建Pod资源的工作流程

三.K8S资源对象

Pod:是K8S能够创建和管理的最小单位。

Pod控制器:

四.K8S资源配置信息


一.k8s

kubernetes   : Google旗下的容器跨主机编排工具,占据了80%以上的市场份额,已经成为容器编排工具的事实标准,在Docker等容器技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。 

K8S有 master 和 worker node 两类节点:

master节点(负责K8S集群的管理和资源调度等运维工作),组件有 apiserver、controller-manager、scheduler、etcd 。
apiserver:是所有服务请求的统一访问入口
controller-manager:控制器管理器,负责管理K8S各种资源对象的控制器;并通过apiserver监控整个K8S集群的资源状态,并确保资源始终处于预期的工作状态
scheduler:资源调度器,负责Pod资源的调度,通过调度算法(预选/优选策略)为要部署的Pod选择最合适的node节点
etcd:K8S集群的数据库,是一种键值对存储结构的分布式数据库,负责存储K8S集群所有的重要信息,仅apiserver拥有访问和读写权限

worker node节点(负责运行工作负载,即容器应用),组件有 kubelet、kube-proxy、容器引擎(docker、containerd等)
kubelet:接收apiserver发来的请求,创建管理Pod和容器,跟容器引擎交互实现对容器生命周期的管理;收集node节点的资源信息和Pod的运行状态发送给apiserver
kube-proxy:作为service资源的载体,实现对Pod的网络代理,负责维护Pod集群网络规则和四层代理工作
容器引擎:运行管理容器

二.K8S创建Pod资源的工作流程

1.用户通过客服端发送创建pod请求给apiserver

2.apiserver收到请求后,会将请求写入给etcd进行保存,并找到controller-manager请求资源预设模版构建pod资源

3.controller-manager会通过apiserver找到scheduler进行调度新创建的pod资源,并通过调度算法的预选和优选策略进行选出最合适的node节点,进行调度

4.scheduler会通过apiserver找到对应的node节点的kubelet去管理创建pod资源,kubelet还可通过容器引擎交互管理pod及容器的生命周期

5.用户还可以通过apiserver的kube-proxy写入网络规则,创建service资源,对pod集群进行网络代理

三.K8S资源对象

所有的资源对象都可以通过 Kubernetes 提供的 kubectl 工具进行增、删、改、查等操作,并将其保存在 etcd 中持久化存储。

Kubernetes 包含多种类型的资源对象:Pod、Label、Service、Replication Controller 等。

Pod:是K8S能够创建和管理的最小单位。

一个Pod里可以包含一个或多个应用容器,同一个Pod里的容器之间共享网络、存储等资源.

Pod控制器:

deployment:部署无状态应用(没有实时数据需要存储);同时也负责管理replicaset(维持Pod副本数始终符合预期状态)和Pod(容器化的应用程序)

statefulset:部署有状态应用(有实时数据需要存储)

daemonset:在所有node节点上都部署同一种的Pod

job:         一次性的部署短期任务的Pod(执行完任务后会自动退出的容器应用)

cronjob:周期性的部署短期任务的Pod(执行完任务后会自动退出的容器应用)

service:在K8S集群内部,为通过标签选择器相关联的一组Pod提供一个统一的访问入口(clusterIP),只支持四层代理转发

ingress:作为K8S集群外部的访问入口,可定义ingress规则根据用于请求的域名或URL请求路径转发给指定的service,支持七层代理转发

service通过标签选择器关联Pod的标签,从而自动发现相关Pod的端点(PodIP:Port)

ingress通过配置规则将不同的域名或URL路径关联不同的service资源

四.K8S资源配置信息

apiversion:指定资源对象的在K8S中使用的api接口版本
kind:          指定资源对象的类型
metadata: 指定资源对象的元数据信息,比如name指定资源名称、namespace指定命名空间、annotation:指定注释、label指定标签
spec:        指定资源对象的资源配置清单(配置属性) ,比如副本数、镜像、网络模式、存储卷、label selector标签选择器
status:      资源对象在当前的运行状态信息
label:标签,将一个或多个键值对标识关联到某个资源对象,用于对资源对象进行分组查询和筛选
label selector:标签选择器,用于查询和筛选拥有相关标签的资源对象
annotation:注释,用作于资源对象的注释信息;还可以在一些特殊的资源对象里用作于设置额外的功能特性
name:资源名称
namespace:命名空间,用于隔离资源名称的。在同一个命名空间中,同类型的资源对象的名称是唯一的。

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

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

相关文章

【STC8A8K64D4开发板】第2-12讲:数码管显示

第2-12讲:数码管显示 学习目的了解数码管分类、工作原理及驱动电路的设计。掌握STC8A8K64D4系列单片机驱动8位共阴数码管的动态显示的软件设计。 数码管概述 数码管是一种常用的显示设备,他有着价格便宜、使用简单的特点,在各个领域被广泛的…

全面解读视频生成模型Sora

2024年2月15日,OpenAI在其官网发布了《Video generation models as world simulators》的报告,该报告提出了作为世界模拟器的视频生成模型Sora。 OpenAI对Sora介绍如下: We explore large-scale training of generative models on video dat…

【漏洞复现】H3C 路由器多系列信息泄露漏洞

Nx01 产品简介 H3C路由器是一款高性能的路由器产品,具有稳定的性能和丰富的功能。它采用了先进的路由技术和安全机制,可以满足不同用户的需求,广泛应用于企业、运营商和数据中心等领域。 Nx02 漏洞描述 H3C路由器多系列存在信息泄露漏洞&…

ngnix网站服务详解

一 Nginx的简介 1 Nginx: ①Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热…

【大模型 知识图谱】ChatKBQA:KBQA知识图谱问答 + 大模型

ChatKBQA:KBQA知识图谱问答 大模型 提出背景传统方法处理流程ChatKBQA处理流程对比优势 总结ChatKBQA框架概览特征1:逻辑形式生成特征2:无监督实体和关系检索特征3:参数高效的微调特征4:GQoT 可解释的查询执行特征5&a…

初识ONLYOFFICE 8.0:办公软件的革命性升级

引言 随着数字化时代的到来,办公软件已经成为我们日常生活和工作的重要组成部分。在这个充满竞争的市场中,ONLYOFFICE凭借其卓越的性能和功能,脱颖而出,成为许多企业和个人用户的优选。近期,ONLYOFFICE推出了全新的8.…

Jdbc概述和基本使用

一、什么是JDBC呢? 目前市面上存在很多的数据库,比如Oracle、Mysql、SqlServer等…每一种数据库都有着自己的独特的实现原理。 那么我们在使用java链接这些数据库的时候就会出现一个问题,我们需要为每一种数据库开发一套专属于该数据库的链接…

通俗易懂地解释OpenAI Sora视频生成的特点有哪些?与Runway Gen2、Pika有什么区别?缺点是什么?

OpenAI的Sora模型是最近两天最火热的模型。它生成的视频无论是清晰度、连贯性和时间上都有非常好的结果。在Sora之前,业界已经有了很多视频生成工具和平台。但为什么Sora可以引起如此大的关注?Sora生成的视频与此前其它平台生成的视频到底有哪些区别&…

自媒体达人都在用的写作工具:6款ai写作实用工具推荐! #科技#学习方法#AI写作

这些宝藏AI 写作神器,我不允许你还不知道~国内外免费付费都有,还有AI写作小程序分享,大幅度提高写文章、写报告的效率,快来一起试试吧! 1.元芳写作 这是一个微信公众号 面向专业写作领域的ai写作工具,写作…

IDEA插件推荐:免费好用!

IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。 今天给大家介绍一款IDEA插件:Api…

C#泛型及其应用:获取并显示员工信信息

目录 一、关于泛型 1.泛型定义 2.泛型与非泛型的区别 3.泛型的应用 (1)泛型类: (2)泛型方法: (3)泛型委托: (4)泛型接口: &a…

智慧公厕:让智慧城市的公共厕所焕发“智慧活力”

智慧城市的建设已经进入了一个新的阶段,不仅仅是智慧交通、智慧环保,如今甚至连公厕都开始迎来智慧化时代。智慧公厕作为智慧城市的神经末梢,正在通过信息化、数字化和智慧化的方式,实现全方位的精细化管理。本文以智慧公厕源头专…

代码随想录刷题笔记-Day21

1. 二叉搜索树中的插入操作 701. 二叉搜索树中的插入操作https://leetcode.cn/problems/insert-into-a-binary-search-tree/给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。…

我为什么不喜欢关电脑?

程序员为什么不喜欢关电脑? 你是否注意到,程序员们似乎从不关电脑?别以为他们是电脑上瘾,实则是有他们自己的原因!让我们一起揭秘背后的原因,看看程序员们真正的“英雄”本色! 一、上大学时。 …

Vue3引用第三方模块报错Could not find a declaration file for module ***.

在引用第三方的组件时候报错如下 原因是:该组件可能不是.ts文件而是.js文件 解决方案: 1.在Src的目录下面新建一个文件为shims-vue.d.ts的文件 2.文件内容为 declare module xxx,xxx就是你报错的模块 例如我这样 declare module vue3-pu…

代码随想录day26--贪心基础

什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优 举个例子: 有一堆钞票,可以拿走十张,如果想要达到最大的金额,应该怎么拿? 指定每次拿最大的,最终结果就是拿走最大数额的…

TypeScript(一):TypeScript基本理解

TypeScript基本理解 为什么使用TS JavaScript发展至今,没有进行数据类型的验证而我们知道,在编程阶段,错误发现的越早越好而TS就解决了JS的这个问题 认识TypeScript TypeScript是拥有类型的JavaScript超级,它可以编译成普通、…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之LoadingProgress组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之LoadingProgress组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、LoadingProgress组件 用于显示加载动效的组件。 子组件 无 接口 L…

Docker详解及使用

文章目录 为什么要用docker为什么会出现容器Docker 是什么容器是什么虚拟化是什么Docker 和 虚拟化的区别Docker 容器有几种在状态什么是仓库什么是镜像什么是容器仓库、镜像、容器的关系常用的 Docker 命令如何把主机的东西拷贝到容器内部如何让容器随着 Docker 服务启动而自动…

双缸黑白箭来袭,3月5日亮相,胡斯瓦纳发布全新车系。

根据国外最新消息,Husqvarna准备在下个月就是3月5日发布全新车系,前段时间刚曝光的新款的401,这突然就来了双缸版本的黑白箭了,之前的401/701全部都是单缸,这也是首台胡斯瓦纳黑白箭的双缸车型。 外观方面仍然采用现代…