Kubernetes | 起源 | 组件详解

news2024/11/16 3:14:48

起源

在这里插入图片描述

  • 起源: Kubernetes(常简称为K8s)起源于Google内部的Borg项目,是一个开源的容器编排引擎,于2014年首次对外发布。
    • Google Borg
      Google Borg 是 Google 内部开发和使用的大规模集群管理系统,用于管理和运行数万台服务器上的应用程序和服务。Borg项目的发展经历了以下阶段:

      • 2003年-2004年: Borg项目最初由Google的工程团队开发,旨在解决Google内部服务的管理和部署问题。Borg的设计目标是实现高可靠性、高效率的集群管理,支持多种应用程序和服务的托管和调度。

      • 2005年-2014年: Borg系统在Google内部广泛应用,成为支撑Google各种服务和应用程序的关键基础设施之一。Borg 通过优化资源利用率、提高服务可靠性等方面为Google提供强大的支持。

      • 2014年-至今: 在Borg系统成功运行多年后,Google决定将其集群管理经验和技术开源,于是诞生了Kubernetes项目。Kubernetes 基于Borg的设计思想和经验,在实现上进行改进和优化,以适应更广泛的应用场景和用户群。
        Google Borg项目发展经历从内部研发到开源孵化的过程,为云原生技术的发展和普及做出重要贡献。

    • Kubernetes最初由Google主导开发,后来成为 Cloud Native Computing Foundation(CNCF)孵化项目,得到众多公司和社区的支持和贡献。它的发展迅速,成为容器编排领域的标准。

影响

  • Kubernetes改变了应用程序部署和管理的方式,使得容器化应用程序的部署、扩展、管理和调度变得更加简单和高效。
  • Kubernetes为跨多个主机的容器集群提供了自动化部署、扩展和运维的能力,为构建云原生应用提供重要的基础设施管理能力。

能力

在这里插入图片描述

Kubernetes 是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。
由于 Kubernetes 是在容器级别运行,而非在硬件级别。提供了 PaaS 产品共有的一些普遍适用的功能, 例如部署、扩展、负载均衡,允许用户集成的日志记录、监控和警报方案。
但Kubernetes 不是单体式(monolithic)系统,那些默认解决方案都是可选、可插拔的。 Kubernetes 为构建开发平台提供基础,但在重要的地方保留用户选择权,能有更高的灵活性。
Kubernetes 的主要作用和能力包括:

  1. 容器编排:Kubernetes 可以管理和编排大量容器化应用程序。可以确保应用程序的各个部分在不同容器中正确运行,并且可以管理应用程序间的依赖关系。

  2. 自动化部署和扩展:Kubernetes 根据应用程序需求自动扩展容器的数量,以满足流量增长或负载均衡的需求。还可以轻松地部署新的应用程序版本,而无需中断正在运行的服务。

  3. 服务发现和负载均衡:Kubernetes 可以为应用程序提供内置的服务发现和负载均衡功能。可以轻松地将流量路由到应用程序的不同部分,并确保正常通信。

  4. 自我修复:Kubernetes 可以监控容器的健康状态,并在出现故障时自动重新启动。提高应用程序的可靠性和稳定性。

  5. 密钥管理和配置:Kubernetes 提供安全地管理密钥和配置信息的方式,以确保应用程序在不同环境中的一致性和安全性。

  6. 存储编排:Kubernetes 支持多种存储系统,并提供统一方式来管理应用程序的持久化存储需求。

  7. 扩展性和可定制性:Kubernetes 提供丰富的 API 和插件系统,可以根据需求扩展和定制平台。

能力以外

Kubernetes 不是传统的、包罗万象的 PaaS(平台即服务)系统。

  • 不限制支持的应用程序类型。 Kubernetes 旨在支持极其多种多样的工作负载,包括无状态、有状态和数据处理工作负载。 如果应用程序可以在容器中运行,那么也应该可以在 Kubernetes 上很好地运行。
  • 不部署源代码,也不构建应用程序。 持续集成(CI)、交付和部署(CI/CD)工作流取决于组织的文化和偏好以及技术要求。
  • 不提供应用程序级别服务作为内置服务,例如中间件(例如消息中间件)、 数据处理框架(例如 Spark)、数据库(例如 MySQL)、缓存、集群存储系统 (例如 Ceph)。这样的组件可以在 Kubernetes 上运行,并且可以由运行在 Kubernetes 上的应用程序通过可移植机制(例如开放服务代理)来访问。
  • 不是日志记录、监视或警报系统解决方案。 它集成一些功能作为概念证明,并提供了收集和导出指标的机制。
  • 不提供也不要求配置用的语言、系统:(例如 jsonnet),提供了声明性 API, 该声明性 API 可以由任意形式的声明性规范所构成。
  • 不提供也不采用任何全面的机器配置、维护、管理或自我修复系统
    此外,Kubernetes 不仅仅是一个编排系统,实际上它消除了编排的需要。 编排的技术定义是执行已定义的工作流程:首先执行 A,然后执行 B,再执行 C。 而 Kubernetes 包含一组独立可组合的控制过程,可以持续地将当前状态驱动到所提供的预期状态。 不需要在乎如何从 A 移动到 C,也不需要集中控制,这使得系统更易于使用且功能更强大、 系统更健壮,更为弹性和可扩展。

组件

在这里插入图片描述

  1. kube-apiserver(API Server): 提供Kubernetes API 服务端实现,是集群控制面的前端,负责处理API请求。

  2. etcd(Key-Value Store): 保存整个集群的状态信息,包括节点信息、Pod信息、Service信息等。

  3. kube-scheduler(Scheduler): 负责将新创建的Pod调度到集群中的节点上,根据调度策略选择合适的节点。

  4. kube-controller-manager(Controller Manager): 包含一系列控制器,负责管理集群的状态,如ReplicationController、NodeController等。

  5. kubelet(Kubelet): 运行在每个节点上,负责管理该节点上的Pod生命周期,与容器运行时(如Docker)交互来创建、启动、停止容器。

  6. kube-proxy(Proxy): 负责为Service提供代理和负载均衡功能,实现Kubernetes Service的网络代理和转发。

  7. Container Runtime(容器运行时): 负责运行容器的软件,常见的包括Docker、containerd等。

  8. Pod(Pod): 是Kubernetes最小的调度单元,可以包含一个或多个紧密相关的容器,并共享网络和存储资源。

  9. Service(Service): 定义了一组Pod的逻辑集合,并提供统一的访问入口,可以实现负载均衡、服务发现等功能。

  10. Volume(Volume): 提供容器存储的抽象,可以让容器在生命周期内持久化存储数据。

这些组件共同构成了Kubernetes的核心功能,为用户提供了高效、弹性和可靠的容器编排和管理能力。除了上述核心组件外,Kubernetes还有一些附加组件,如Dashboard、DNS插件、Ingress Controller等,用于提供更丰富的功能和扩展性。

附加组件的介绍:

  1. Dashboard(仪表盘): Kubernetes Dashboard是一个基于Web的用户界面,用于可视化管理Kubernetes集群。它提供了对集群状态、工作负载、服务和存储等资源的实时监控和管理功能,可以方便地查看和操作集群中的各种资源。

  2. DNS插件(DNS Add-on): Kubernetes集群通常会配备一个DNS插件,用于提供服务发现和DNS解析功能。通过DNS插件,用户可以使用域名来访问集群中的服务,而无需关心具体的IP地址。

  3. Ingress Controller(入口控制器): Ingress是Kubernetes中的一种资源对象,用于定义对集群中服务的外部访问规则。Ingress Controller负责实现这些规则,通常通过负载均衡器或反向代理来实现对Ingress资源的路由和流量转发。

  4. 日志插件(Logging Add-on): Kubernetes集群通常会配置日志插件,用于收集、存储和管理Pod的日志信息。常见的日志插件包括Fluentd、Fluent Bit等,它们可以将日志发送到中央日志存储系统,方便用户查看和分析日志数据。

这些附加组件提供丰富的功能和扩展性,可以更好地管理和使用Kubernetes集群。
可根据需求选择合适的组件来增强集群的功能和性能。

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

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

相关文章

锐捷 EWEB auth 远程命令执行漏洞复现

一、漏洞信息 漏洞名称:锐捷 EWEB auth 远程命令执行漏洞 漏洞类别:远程代码执行 风险等级:高危 二、漏洞描述 锐捷睿易是锐捷网络针对商业市场的子品牌。拥有易网络、交换机、路由器、无线、安全、云服务六大产品线,解决方案涵盖商贸零售、酒店、KTV、网吧、监控安防…

GPT出现Too many requests in 1 hour. Try again later.

换节点 这个就不用多说了,你都可以上GPT帐号了,哈…… 清除cooki 然后退出账号,重新登录即可

KBL610-ASEMI开关电源专用KBL610

编辑:ll KBL610-ASEMI开关电源专用KBL610 型号:KBL610 品牌:ASEMI 封装:KBL-4 最大重复峰值反向电压:1000V 最大正向平均整流电流(Vdss):6A 功率(Pd):中小功率 芯片个数:4 …

encoding和embedding的区别

本文作者: slience_me 文章目录 encoding和embedding的区别EmbeddingEncoding总结 encoding和embedding的区别 “Embedding” 和 “Encoding” 是两个在计算机科学和机器学习领域中常用的术语,它们虽然有些相似,但指代的概念和用途有所不同。…

国创证券|lpr下调25个基点是多少?lpr下调对股市债市有什么影响?

lpr是借款市场报价利率,其间lpr下调25个基点是指lpr利率下降0.25%,比方,下调之前五年期以上的lpr为4.2%,下调25个基点之后,变为3.95%。 lpr下调对股市债市存在以下影响: 1、券商股 借款利率下降&#xf…

发现创作灵感的聚集地:乐歌M9G与M9S升降办公台对比解析

在现代工作环境中,全天待在桌前的时间已经超过了其他的项目,尤其是以编程开发、动画设计为主的互联网从业者,工作量的增加,会导致颈椎和腰椎僵硬,根据人工工程学提出的人与环境之间的协调关系,对于上班一族…

ssm蛋糕甜品商城系统(程序+文档+数据库)

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

场的概念---数量场(标量场)和矢量场介绍理解

目录 一、场的概念 二、场的分类 三、数量场(标量场)的等值面 四、矢量场中的矢量线 矢量线方程推导: 一、场的概念 场在数学上是指一个向量到另一个向量或数的映射。场指物体在空间中的分布情况。场是用空间位置函数来表征的。在物理学…

C#集合和数据结构,随笔记录没空排版,,,

C#集合和数据结构 System.Collections命名空间包含接口和类,这些接口和类定义各种对象(如列表/链表、位数组、哈希表、队列和堆栈)的集合 System.Collections.Generic命名空间: 所有集合都直接或间接基于ICollection接口 列表类集…

网络通信另个角度的认识(进程间通信),端口号(为什么要有,和pid的关系,如何封装,和进程的定位原理+对应关系)客户端如何拿到服务端的port

目录 另一个角度认识网络通信 端口号 引入 -- 为什么要有端口号 问题 解决 端口号和pid 举例 介绍 分类 知名端口 注册端口 动态端口 客户端如何知道服务端的端口号 封装端口号 定位原理 进程和端口号的对应关系 数据如何被上层进程读到 另一个角度认识网络…

抽样算法——【数据科学与工程算法基础】

一、前言 这是课程的第二章节——抽样算法,主要分为三类。 详情可参考: 数据科学的算法基础——学习记录跳转中心 二、正篇 1.系统抽样 课本只介绍了最简单的——等距抽样。 直线等距抽样(Nn*k):即总体个数可以被抽…

webgl instance 绘制

webgl instance 绘制 效果: key1: 创建实例缓存 function createMesh() {for (let i 0; i < NUM_CUBE; i) {const angle i * 2 * Math.PI / NUM_CUBE;const x Math.sin(angle) * RADIUS;const y 0;const z Math.cos(angle) * RADIUS;cubes[i] {scale: new THREE.V…

从零开始实现ORB_SLAM2编译与运行

文章目录 前言一、前期准备二、库安装1.engin库安装方法1&#xff1a;apt安装方法2&#xff1a;源码安装 2.Pangolin库安装3.openCV源码安装 三、build编译四、测试五、ROS安装六、build-ros编译七、测试总结 前言 ORB_SLAM2作为一种优秀的开源VSLAM解决方案&#xff0c;以其高…

高浓度纸浆废水如何处理达标排放

在纸浆生产过程中&#xff0c;高浓度纸浆废水是一个常见的环境污染源&#xff0c;其处理对于环境保护和可持续发展至关重要。为了实现高浓度纸浆废水的达标排放&#xff0c;必须采用一系列专业的处理技术&#xff0c;以确保废水处理的高效性和环境友好性。 首先&#xff0c;通过…

Oracle之ADG与DG的区别?

在上云后的Oracle数据灾备场景中&#xff0c;我们经常听到DBA迁移工程师讲到“在这个项目中用ADG进行数据实时备份&#xff0c;ADG比DG更好&#xff01;”。究竟ADG作Oracle数据灾备的优势在什么地方&#xff1f; 一、ADG主要解决了DG时代读写不能并行的问题 DG时代的数据同步…

Kutools For Excel | 新增 300+ 高级功能

Kutools For Excel 是一个便捷的 Excel 插件&#xff0c;具有 300 多种高级功能&#xff0c;可将各种复杂的任务简化为在 Excel 中的几次单击。 功能强大且用户友好的加载项将为 Excel 用户节省大量工作时间&#xff0c;并大大提高工作效率。支持 Excel 2021 / 2019 / 2016 / …

【Python使用】python高级进阶知识md总结第3篇:静态Web服务器-返回指定页面数据,静态Web服务器-多任务版【附代码文档】

python高级进阶全知识知识笔记总结完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;操作系统&#xff0c;虚拟机软件&#xff0c;Ubuntu操作系统&#xff0c;Linux内核及发行版&#xff0c;查看目录命令&#xff0c;切换目录命令&#xff0c;绝对路径和相对…

‘UnityEngine.Application‘ does not contain a definition for isBatchMode

unity 2017.4.37f1. 解决办法: Try to replace Application.isBatchMode with UnityEditorInternal.InternalEditorUtility.inBatchMode

NCDA大赛交互网页设计优秀作品有哪些?

现在&#xff0c;越来越多 UX/UI 设计者将互动 / 在其网站设计中添加动画元素(如鼠标悬停状态、音频或视频媒体、滚动交互等。).这样一方面可以让网站本身更加华丽有趣&#xff0c;吸引更多的访问者&#xff0c;激励访问者更加关注和阅读网站内容。这就是为什么互动网站设计已经…

机器学习开源分子生成系列(1)-DeepFrag的本地部署及使用

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …进入 文章目录 前言一、DeepFrag是什么&#xff1f;二、conda中安装DeepFrag CLI环境1. 创建环境并激活2. 下载pre-trained model3. DeepFrag CLI 使用方法必需参数&#xff1a;可选参数&#xff1a; 4. DeepFrag CLI 使用…