Kubernetes学习-核心概念篇(一) 初识Kubernetes

news2024/11/24 2:08:32

🏷️个人主页:牵着猫散步的鼠鼠 

🏷️系列专栏:Kubernetes渐进式学习-专栏

🏷️个人学习笔记,若有缺误,欢迎评论区指正 

目录

1. 前言

2. 什么是Kubernetes

3. 为什么需要Kubernetes

3.1. 应用部署的三大阶段

(1)传统部署

(2)虚拟化部署

(3)容器部署

3.2. K8S的特点

4. 企业级容器调度平台对比

4.1. Apache Mesos

4.2. Docker Swarm

4.3. Google Kubernetes(K8S)

5. 总结


1. 前言

开个新坑,记录下自己的Kubernetes渐进式学习笔记,整个过程大概会分为三个部分,核心概念篇,实战进阶篇,运维管理篇。

2. 什么是Kubernetes

Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。

Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。

3. 为什么需要Kubernetes

我们首先来看看应用部署发展的三大阶段

3.1. 应用部署的三大阶段

(1)传统部署

程序员/运维工程师手动操作部署应用,直接将应用部署在目标机器上,由于资源不隔离,容易出现资源争抢、依赖冲突等各方面问题。

(2)虚拟化部署

利用 OpenStask / VMware 等虚拟化技术,将一台目标机器虚拟化为多个虚拟机器,按照需求将应用部署到不同的虚拟机中,对虚拟机进行动态的水平扩容等管理操作。

相对传统部署自动化、资源隔离的能力提升了,带来的问题是虚拟化的逻辑过重,导致效率不高,且耗费资源较多。

(3)容器部署

可以理解为轻量级的虚拟化,完美弥补虚拟化技术过重的问题,且由于直接共享主机硬件资源,只是通过系统提供的命名空间等技术实现资源隔离,损耗更小,且效率更高。

容器化部署相比与前两者可能轻松了不少,但是如果对于几十个几百个上千个容器,我们肯定不能通过手动来创建,我们需要一种方法来管理大规模容器化的应用程序,而Kubernetes提供了一种高效的方式来编排这些容器,运用较为广泛。

3.2. K8S的特点

K8S的特点包括但不限于如下:

  1. 自动化部署与回滚:Kubernetes允许用户自动化容器的部署和更新。如果更新后的容器不健康,它还能自动回滚到之前的版本。

  2. 服务发现和负载均衡:Kubernetes可以使用DNS名或自己的IP地址自动发现容器,如果容器的流量过大,Kubernetes也能够负载均衡流量,确保部署稳定。

  3. 存储编排:Kubernetes允许您自动挂载您选择的存储系统,无论是本地存储、公共云提供商如GCP或AWS,还是网络存储系统如NFS或iSCSI等。

  4. 自我修复:Kubernetes能够确保部署的容器是健康的,如果不是,它会自动重启容器,确保服务一直是可用的。

  5. 水平扩展:您可以使用简单的命令、用户界面或基于CPU等使用情况的自动设置来扩大或缩小应用。

  6. 弹性伸缩:Kubernetes可以根据资源使用情况或自定义指标自动扩容或缩容应用程序。

  7. 批处理:除了服务之外,Kubernetes还可以管理批处理作业,确保任务可靠地完成。

4. 企业级容器调度平台对比

4.1. Apache Mesos

Mesos 是一个分布式调度系统内核,早于 Docker 产生,Mesos 作为资源管理器,从 DC/OS (数据中心操作系统)的角度提供资源视图。主/从结构工作模式,主节点分配任务,并用从节点上的 Executor 负责执行,通过 Zookeeper 给主节点提供服务注册、服务发现功能。通过 Framework Marathon 提供容器调度的能力。

优势:

经过时间的检验,作为资源管理器的 Apache Mesos 在容器之前就已经出现很久了,支持运行容器化化和非容器化的工作负载。可以支持应用程序的健康检查,开放的架构。支持多个框架和多个调度器,通过不同的 Framework 可以运行 Haddop/Spark/MPI等多种不同的任务。

支持超大型规模的节点管理,模拟测试支持超过 5w+ 节点,在大规模上拥有较大优势。

4.2. Docker Swarm

Docker Swarm 是一个由 Docker 开发的调度框架。由 Docker 自身开发的好处之一就是标准 Docker API 的使用,Swarm 由多个代理(Agent)组成,把这些代理称之为节点(Node)。这些节点就是主机,这些主机在启动 Docker Daemon 的时候就会打开相应的端口,以此支持 Docker 远程 API。这些机器会根据 Swarm 调度器分配给它们的任务,拉取和运行不同的镜像。

优势:

从 Docker1.12 版本开始,Swarm 随 Docker 一起默认安装发布。由于随 Docker 引擎一起发布,无需额外安装,配置简单。支持服务注册、服务发现,内置 Overlay Network 以及 Load Balancer。与 Docker CLI 非常类似的操作命令,对熟悉 Docker 的人非常容易上手学习。

入门门槛、学习成本较低,使用更便捷,适用于中小型系统。

4.3. Google Kubernetes(K8S)

Kubernetes 是基于 Google 在过去十五年来大量生产环境中运行工作负载的经验。Kubernetes 的实现参考了 Google 内部的资源调度框架,但并不是 Borg 的内部容器编排系统的开源,而是借鉴 Google 从运行 Borg 获得的经验教训,形成了 Kubernetes 项目。

它使用 Label 和 Pod 的概念来将容器划分为逻辑单元。Pods 是同地协作(co-located)容器的集合,这些容器被共同部署和调度,形成了一个服务,这是 Kubernetes 和其他两个框架的主要区别。相比于基于相似度的容器调度方式(就像 Swarm 和Mesos),这个方法简化了对集群的管理。

优势:

最流行等容器编排解决方案框架,基于 Google 庞大的生态圈及社区产生的产品。通过 Pods 这一抽象的概念,解决 Container 之间的依赖于通信问题。Pods,Services,Deployments 是独立部署的部分,可以通过 Selector 提供更多的灵活性。内置服务注册表和负载平衡。

适用度更广,功能更强大,相较于 Mesos 来说节点规模较小。

5. 总结

Kubernetes 是一个开源的容器编排平台,用于自动化计算机软件的部署、扩展和管理。本次简单的介绍了什么是Kubernetes,从应用部署方面出发思考为什么需要Kubernetes,以及各个容器调度平台之间的对比。

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

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

相关文章

JAVA实现easyExcel批量导入

注解类型描述ExcelProperty导入指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。…

网络安全实训Day15

写在前面 电子垃圾,堂堂恢复连载。本来不想分天数梳理了,但是最后要写实训报告,报告里还要有实训日记记录每日学的东西,干脆发这里留个档,到时候写报告提供一个思路。 网络空间安全实训-渗透测试 渗透测试概述 定义 一…

python flask 假死情况处理+https证书添加

前言 当使用flask编写了后台程序跑在服务器端的时候,有时候虽然后台中显示在运行,但是页面无法访问,出现这个情况可以使用如下方法修改代码,进而防止假死,另外记录下flask下证书的添加。 假死处理 出现进程存在&…

(MSFT.O)微软2024财年Q3营收619亿美元

在科技的浩渺宇宙中,一颗璀璨星辰再度闪耀其光芒——(MSFT.O)微软公司于2024财政年度第三季展现出惊人的财务表现,实现总营业收入达到令人咋舌的6190亿美元。这一辉煌成就不仅突显了微软作为全球技术领导者之一的地位,更引发了业界内外对这家…

华为OD机试 - 跳格子3 - 动态规划(Java 2024 C卷 200分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

FORM调用标准AP\AR\GL\FA界面

EBS FORM客户化界面有时候数据需要追溯打开AP\AR\GL\FA等界面: 一种打开日记账的方式: PROCEDURE SHOW_JOURNAL ISparent_form_id FormModule;child_form_id FormModule; BEGINclose_jrn;parent_form_id : FIND_FORM(:SYSTEM.CURRENT_FORM);COPY(TO…

代码随想录算法训练营DAY38|C++动态规划Part.1|动态规划理论基础、509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

文章目录 动态规划理论基础什么是动态规划动态规划的解题步骤DP数组以及下标的含义递推公式DP数组初始化DP数组遍历顺序打印DP数组动态规划五部曲 动态规划应该如何debug 509.斐波那契数什么是斐波那契数列动态规划五部曲确定dp数组下标以及含义确定递推公式dp数组如何初始化确…

免费的单片机物联网MQTT平台选择

目的是多设备接入中控,平台只做转发。 选择巴法云:巴法科技&巴法云-巴法设备云-巴法物联网云平台 clientId是私钥uid: 多设备 clientId 填同一个 uid 都是可以的。平台应该是加了后缀区分。 支持自定义topic,操作简单&#x…

关于我在 uniapp 开发过程中遇到的问题(更新中...)

目录 uniapp 勾选自带的隐私政策 出现的问题 是否忽略版本兼容检查提示 勾选了uniapp的消息推送 打包后弹出 push module was not added when packaging, please refertohttps://ask.dcloud.net.cn /article/283 关于uniapp的真机调试 一直等待问题 或者 正在建立链接 在…

封装 H.264 视频为 FLV 格式然后推流

封装 H.264 视频为 FLV 格式并通过 RTMP 推流 flyfish 协议 RTMP (Real-Time Messaging Protocol) RTSP (Real Time Streaming Protocol) SRT (Secure Reliable Transport) WebRTC RTMP(Real Time Messaging Protocol)是一种用于实时音视频流传输的协…

以更多架构核心专利,推进 SDS 产业创新创造

今天是第 24 个世界知识产权日,今年世界知识产权日活动的主题是:“知识产权和可持续发展目标:立足创新创造,构建共同未来。” 这也正是 XSKY 在软件定义存储领域的目标之一。以“数据常青”为使命的 XSKY,始终立足于软…

Linux基础——Linux基本指令(下)

前言:Linux基本指令学到这里也快接近尾声了,如果对前面内容还有不清楚建议回顾这两篇文章 。 Linux基本指令(上) 和Linux基本指令(中) 接前两篇,接下来让我们再深入学习一下最后几个Linux指令,Linux基本指令将在本篇完结。 在此前&#xff…

将图片添加描述批量写入excel

原始图片 写入excel的效果 代码 # by zengxy chatgpt # from https://blog.csdn.net/imwatersimport os import xlsxwriter from PIL import Imageclass Image2Xlsx():def __init__(self,xls_path,head_list[编号, 图片, 名称, "描述",备注],set_default_y112,se…

StarRocks x Paimon 构建极速实时湖仓分析架构实践

Paimon 介绍 Apache Paimon 是新一代的湖格式,可以使用 Flink 和 Spark 构建实时 Lakehouse 架构,以进行流式处理和批处理操作。Paimon 创新性地使用 LSM(日志结构合并树)结构,将实时流式更新引入 Lakehouse 架构中。 …

Spark原理之Cache Table的工作原理及实现自动缓存重复表的思考

CACHE TABLE的能力 使用此语法,可以由用户自定义要缓存的结果集,实际上就是一个临时表,不过数据存储在Spark集群内部,由Application所分配的executors管理。 一旦定义了一个缓存表,就可以在SQL脚本中随处引用这个表名…

HTTP 网络协议的请求头信息,响应头信息,具体详解(2024-04-26)

1、通用头部 2、常见的 HTTP请求头信息 HTTP 响应头信息是服务器在响应客户端的HTTP请求时发送的一系列头字段,它们提供了关于响应的附加信息和服务器的指令。 3、常见的 HTTP 响应头信息 响应头向客户端提供一些额外信息,比如谁在发送响应、响应者的功…

数据分析:甲基化分析-从DNA methylation的IDAT文件到CpG site的Beta values

介绍 DNA Methylation和疾病的发生发展存在密切相关,它一般通过CH3替换碱基5‘碳的H原子,进而调控基因的转录。常用的DNA methylation是Illumina Infinium methylation arrays,该芯片有450K和850K(也即是EPIC)。 该脚…

深入解析YOLOv2

深入解析YOLOv2 引言 目标检测是计算机视觉中的一个核心问题,它旨在识别图像中所有感兴趣的目标,并给出它们的类别和位置。近年来,随着深度学习技术的发展,目标检测领域取得了巨大的进步。YOLO(You Only Look Once&a…

STM32的Flash读写保护

参考链接 STM32的Flash读写保护,SWD引脚锁的各种解决办法汇总(2020-03-10)-腾讯云开发者社区-腾讯云 (tencent.com)https://cloud.tencent.com/developer/article/1597959 STM32系列芯片Flash解除写保护的办法 - 知乎 (zhihu.com)https://zh…

Xcode for Mac:强大易用的集成开发环境

Xcode for Mac是一款专为苹果开发者打造的集成开发环境(IDE),它集成了代码编辑器、编译器、调试器等一系列开发工具,让开发者能够在同一界面内完成应用的开发、测试和调试工作。 Xcode for Mac v15.2正式版下载 Xcode支持多种编程…