K8S的基础知识

news2024/11/27 14:50:47

K8S的意义与入门

专有名词

  • 容器:包含了运行一个应用程序所需要的所有东西,包括:代码、运行时、各种依赖和配置。
  • pod:K8s调度的最小单元,包含一个或多个容器。一个容器组中的容器具有紧密耦合性,共享资源,存储空间和IP。即同一个容器组中的容器可以通过localhost:xxx访问其他容器
  • node:K8S中的执行角色为Node,一个Node一般是一个虚拟机或物理机,它上面事先运行着 docker 服务和 kubelet 服务( Kubernetes 的一个组件)。

容器编排的意义

  • 提出背景: 随着微服务架构的出现,单体式架构被拆分成了很多细小的服务,运行在各自的容器中。那么该如何解决它们之间的 依赖管理,服务发现,资源管理,高可用 等问题呢?
  • 容器编排的作用:
    • 资源编排: 限制各容器的可用资源,资源分配和调度。
    • 工作负载编排: k8s通过不同的 controller 将 Pod 调度到合适的 node 上,并且负责管理它们的生命周期。
    • 服务编排: 负责服务发现和高可用等,如 Kubernetes 中可用通过 Service 来对内暴露服务,通过 Ingress 来对外暴露服务‘

      Service :将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。
      Ingress :公开从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源上定义的规则控制;

K8S 的集群构成与原理

在这里插入图片描述

Master结构:

  • Api server:是整个系统的对外接口,供客户端和其它组件调用;
  • Etcd:Api server 的后台数据存储,相当于 Kubernetes 集群的数据中⼼;
  • Scheduler:负责对集群内部的资源进行调度;
  • Controller-manager:控制管理器,保证 Kubernetes 集群中的资源按照要求运⾏。

Node结构:

  • Kubelet:负责与 Master 节点交互,相当于master的代理,接受master下发的任务,进⽽执⾏具体的任务;
  • Kube-proxy:负责 Kubernetes 集群中的负载均衡;
  • Container-runtime:提供容器运行环境,有 docker,rkt 或者其他容器实现标准,负责容器的操作,启动或者关闭等;
  • Pod:k8s 的最小调度单元,1 个 pod 可以包含 1 个或多个容器,pod 可以理解为容器的集合。

Pod的创建流程

以创建 Pod 为例,来理解 Kubernetes 中的各组件的运⾏流程:

  1. 通过 api server 向集群发起创建 Pod 的指令,api server 将 yaml 中的配置的属性信息(metadata)写入 etcd 中。
  2. api server 触发 watch 机制准备创建 pod,信息转发给调度器 SchedulerScheduler 使用调度算法选择 node,然后将 node 信息给 api server,api server 将绑定的 node 信息写入 etcd。
  3. api server 又通过 watch 机制,调用 kubelet,指定 pod 信息,触发docker run命令创建容器。创建完成之后反馈给 kubelet, kubelet 又将 pod 的状态信息给 api server, api server 又将 pod 的状态信息写入etcd。
    ⾄此 Pod 真正的创建完毕。如果因为某些原因 Pod 出现了问题,集群中的 controller-manager 会向 apiserver 发起创建的请求。
    在这里插入图片描述

K8s中控制器管理

控制器模式与声明式API编程

Kubernetes 如何能够实现最大单个集群能够达到5000个节点,15万个Pod的完全自动化管理,主要归功于声明式API编程控制器模式的协作。

  • 控制器模式: 在k8s集群中,控制器通过 API Server提供的(List & Watch)接口实时监控集群中资源对象的状态变化,当发生故障,导致资源对象的状态变化时,控制器会尝试将其状态调整为期望的状态。发现变化的方式有两种,一种为定时轮训,一种为监听通知。

    比如当某个Pod出现故障时,Deployment Controller会及时发现故障并执行自动化修复流程,确保集群里的Pod始终处于预期的工作状态。

  • 声明式API编程: 相反于 命令式的编程方法的一种编程方式。只给目标,不关乎结果,目标达成即可。简单说,如果要扩容,并不是给“创建一个新node”的指令,而是直接将node数改为“n+1”。声明式更新的好处是不会丢失历史变更。

ReplicaSet 控制器

  • ReplicaSet 主要的作用是维持一组Pod副本的运行,使pod副本的数量始终维持在预设的个数。它会持续监听这些Pod的运行状态,在Pod发生故障时重启pod,pod数量减少时重新运行新的 Pod副

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

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

相关文章

【C++初阶(八)】C/C++内存管理详解

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

C 语言指针怎么理解?

今日话题,C 语言指针怎么理解?让我用更简洁的方式来表达这个内容:就像桌面上的快捷方式一样,指针也可以有多层引用。我们可以将指针比作快捷方式的图标,快捷方式可以指向游戏(普通指针)&#xf…

人工智能基础_机器学习030_ElasticNet弹性网络_弹性回归的使用---人工智能工作笔记0070

然后我们再来看elastic-net弹性网络,之所以叫弹性是因为,他融合了L1和L2正则,可以看到 他的公式 公式中有L1正则和L2正则两个都在这个公式中 可以看到弹性网络,在很多特征互相联系的时候,非常有用,比如, 相关性,如果数学好,那么物理也好,如果语文好,那么英语也好 这种联系 正…

制作这种在线宣传画册,可轻松收获客户!

制作企业宣传画册,首先要了解企业制作宣传画册的需求以及展示方向,如今互联网时代,宣传画册的制作也应该要创新,而制作一本在线电子宣传画册用于线上宣传是非常有必要的。如何制作呢? 我们 可以使用FLBOOK平台在线制作…

bfc 简单理解及应用

1、概念 bfc 是 Block formatting context 的缩写,也就是块级格式化上下文,就是让元素形成独立的渲染区域,bfc容器内部的渲染对外部不会有影响。 2、形成bfc的常见条件 浮动 设置元素具有float: left/right绝对/固定定位:posit…

keepalived 的安装部署及使用详细完整版

架构 1.安装 yum install keepalived -ysystemctl enable keepalivedsystemctl restart keepalivedsystemctl status keepalived2.部署配置样例 vim /etc/keepalived/keepalived.conf global_defs {router_id PROXYSQL_HAscript_user rootenable_script_security } vrrp_scri…

js案例:跟随鼠标移动的大虫子

目录 效果预览图 整体思路 完整代码 效果预览图 整体思路 rang 函数用于生成指定范围内的随机整数。 通过循环,创建了50个div元素,每个div都有一个不同的数字和随机的背景颜色。 给每个div元素添加了名为 "ball" 的类名。 通过 documen…

为什么说葡萄酒越复杂,越有可能陈年?

大家都觉得老酒更好,对吧?一瓶酒在黑暗的洞穴里放得越久,瓶子慢慢积灰,我们喝的时候就越好喝,对吗?其实是不对的!葡萄酒陈酿的根本原因是为了让它的味道更好,或者更确切地说让风味发…

一文懂得电源模块过温保护测试方法 ate测试软件助力测试

过温保护测试是电源模块保护功能测试项目之一,也是电源模块测试的重要测试指标,以保证电源模块过温保护功能正常,确保电源模块不受损坏。用ate测试软件测试电源模块过温保护,不仅可以保证测试结果的准确性,还可以多维度…

SAP 70策略测试简介

在前面的文章中我们已经测试了10、11、20、40、50、52、60、62策略的测试,接下来我们需要对70策略进行测试,很多的项目中也都会用到70策略。 70策略是一种比较常见的、基于按库存且主要用于半成品或者原材料的计划策略。 我们还是按照之前的惯例,先看下70策略的后台配置 我…

书单 | 11月程序员新书播报

11月最新上架计算机书籍 1、人工智能(第3版) 美国经典人工智能教材第3版,人工智能的百科全书,新增深度学习及人工智能编程等内容,理论阐释结合动手实践,附赠PPT课件、配套视频及代码文件。 1.人工智能经典…

Linux线程池

文章目录: 线程池了解线程池模拟实现 线程池了解 线程池是一种常见的线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,以避免在处理短时间任…

Python爬虫过程中DNS解析错误解决策略

在Python爬虫开发中,经常会遇到DNS解析错误,这是一个常见且也令人头疼的问题。DNS解析错误可能会导致爬虫失败,但幸运的是,我们可以采取一些策略来处理这些错误,确保爬虫能够正常运行。本文将介绍什么是DNS解析错误&am…

JLMR Micro Super Resolution Algorithm国产微超分算法DEMO

一、简介 目前,做超分算法基本还是以AI训练为主,但是AI基本上都是基于既定场景的训练。而传统的算法基本上都是利用上下文的纹理预测、插值等方案,在图像放大过程中会出现模糊,或马赛克等现象。 我们基于加权概率模型&#xff0c…

后端接口性能优化分析-1

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…

SQLite3 数据库学习(一):数据库和 SQLite 基础

参考引用 SQL 必知必会SQLite 权威指南(第二版)关系型数据库概述 1. 数据库基础 1.1 什么是数据库 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件) 可以将其想象为一个文…

谷歌提出AGI的6大原则,和5大能力等级

随着ChatGPT等大模型的出现,AGI概念正在从哲学层面快速转向实际应用落地,并且ChatGPT已经展示出了初级AGI的功能(如AutoGPT),有不少专家认为,AGI时代可能在10年内到来。 因此,需要一个明确的技术框架来讨论和衡量不同…

图片转excel的三种方案(电脑、手机)

图片怎么转换成excel文件呢?用金鸣表格文字识别是最便捷、最佳的解决方案。也许有些同学会问,那我用手工也可以解决呀,干吗要用软件?这么想就不对了,手工做不但要做表格线,还要手工打字,非常麻烦,而且容易出错,特别是对于数字多的图片,更是要命,现在有金鸣识别就不用那么麻烦…

python读取excel,进行数据处理

一、准备python编译器 二、下载 pyexcel 库 pip install pyexcel-xls三、进行编码读取数据 import pyexcel# 读取Excel文件 成本中心字典 data pyexcel.get_array(file_name成本中心.xls)def hand():#打印数据#print(data)url f"INSERT INTO dst_base.sys_dict(p_…

efcore反向共工程,单元测试

1.安装efcore需要的nuget <PackageReference Include"Microsoft.EntityFrameworkCore" Version"6.0.24" /> <PackageReference Include"Microsoft.EntityFrameworkCore.SqlServer" Version"6.0.24" /> <PackageRefere…